Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 44609|Vastaus: 1

[Lähde] ValidateAntiForgeryToken ja AutoValidateAntiforgeryToken -anti-counterfeiting -tunnisteet selitetään yksityiskohtaisesti

[Kopioi linkki]
Julkaistu 20.2.2021 19.57.29 | | | |
CSRF-hyökkäysten estämiseksi asp.net mvc tarjoaa ValidateAntiForgeryToken -väärennyshyökkäysominaisuuden, ja uudessa asp.net core frameworkin versiossa Microsoft tarjoaa AutoValidateAntiforgeryToken -ominaisuuden, erityisesti ValidateAntiForgeryToken ja AutoValidateAntiforgeryToken Mikä on ero, tässä artikkelissa selitämme yksityiskohtaisesti.

mvc ajax AntiForgeryTokenilla CSRF-hyökkäysten estämiseksi
https://www.itsvse.com/thread-4207-1-1.html

ASP.NET CSRF-hyökkäys Ajax pyytää kapselointia
https://www.itsvse.com/thread-8077-1-1.html
CSRF-konsepti

CSRF:n sivustojen välisen pyynnön väärennös, kuten XSS-hyökkäyksetkin, on erittäin haitallista, voit ymmärtää sen näin: hyökkääjä varastaa henkilöllisyytesi ja lähettää haitallisen pyynnön nimissäsi, mikä on täysin laillista palvelimelle, mutta suorittaa odotettavissa olevan toiminnon, kuten sähköpostien ja viestien lähettämisen sinun nimissäsi, tilisi varastamisen, järjestelmänvalvojien lisäämisen tai jopa tavaroiden ostamisen, virtuaalivaluutansiirrot jne. Web A on verkkosivusto, jossa on CSRF-haavoittuvuus, Web B on hyökkääjän rakentama haitallinen verkkosivusto, ja käyttäjä C on laillinen Web A:n käyttäjä.


ASP.NET MVC CSRF-hyökkäyksiä vastaan

Näkymäsivulla käytä @Html.AntiForgeryToken() lisätäksemme tagin, ja kun käyttäjä pääsee sivulle, taustajärjestelmä luo automaattisesti piilotetun html-koodin tunnisteella seuraavasti:


<syöttönimi="__RequestVerificationToken" type="piilotettu" value="CfDJ8FBn4LzSYglJpE6Q0fWvZ8WDMTgwK49lDU1XGuP5-5j4JlSCML_IDOO3XDL5EOyI_mS2Ux7lLSfI7ASQnIIxo2ScEJvnABf9v51TUZl_iM2S63zuiPK4lcXRPa_KUUDbK-LS4HD16pJusFRppj-dEGc" />
Taustaohjain täytyy asettaa [ValidoiAntiForgeryToken] ominaisuus, joka estää lomakkeiden väärentämisen.

ValidateAntiForgeryToken ja AutoValidateAntiforgeryToken ovat erilaisia

AutoValidateAntiforgeryTokenAuthorizationFilter perii ValidateAntiforgeryTokenAuthorizationFilterin, mutta kirjoittaa uudelleen vain ShouldValidate-metodin siinä.

AutoValidateAntiforgeryToken-ominaisuus, joka aiheuttaa väärennösten estäjätokenien validoinnin kaikille turvattomille HTTP-menetelmille.HTTP-menetelmät paitsi GET, HEAD, OPTIONS ja TRACE vaativat kaikki väärennösten estomerkin。 Tätä voidaan soveltaa globaalina suodattimena, joka käynnistää sovelluksen väärennösten estotokenien validoinnin oletuksena.

Hyperlinkin kirjautuminen on näkyvissä.

AutoValidateAntiforgeryTokenAttribute validoi kutsun AutoValidateAntiforgeryTokenAuthorizationFilteriin, joka perii ValidateAntiforgeryTokenAuthorizationFilter,ShouldValidate-menetelmä on kirjoitettu uudelleen, ja true-palautus tarkoittaa, että se täytyy validoida, ja false -menetelmää ei validoita, kuten alla olevassa kuvassa näkyy:

Analysoi lähdekoodi:



AutoValidateAntiforgeryTokenAttribute mahdollistaa väärentämisen estävän tokenin validoinnin maailmanlaajuisesti kaikkiin turvattomiin menetelmiin, kuten POST, PUT, PATCH ja DELETE. Joten sinun ei tarvitse lisätä [ValidateAntiForgeryToken] -ominaisuutta jokaiseen toimintoon, joka sitä vaatii.

Käyttääksesi sitä, lisää seuraava koodi ConfigureServicesin Startup-luokkametodiin:


Jos sinun täytyy jättää väärennösten vastainen todennus huomiotta, voit lisätä [Ignoreeri AntiforgeryTokenAttribua toimintaan.

Joskus saatat joutua merkitsemään useita pyyntöjä ohjaimella samalla kun tarvitset joitakin pyyntöjä, joita ei tarvitse väärentää, kuten erilaisia GET-pohjaisia operaatioita. On olemassa useita työkaluja, joilla prosessista tehdään kätevämpi ja mukavampi. Ensimmäinen on AutoValidateAntiforgeryToken -ominaisuus. Se käyttäytyy kuin ValidateAntiForgeryToken-ominaisuus. Kuitenkin se sivuuttaa automaattisesti datan hakuun suunnitelluilla metodeilla kutsutut toiminnot: GET, HEAD, OPTIONS ja TRACE. Tämä mahdollistaa väärennösten estämisen menetelmien nopean ja helpon lisäämisen kaikkiin menetelmiin, jotka voivat muuttaa dataa vaikuttamatta siihen, miten data haetaan.

Seuraava koodi on esimerkki AutoValidateAntiforgeryToken-ominaisuudesta:


Tässä esimerkissä molemmat normaalit Index-toiminnot (GET) toimivat lähteestä riippumatta, kun taas sekä Index-operaatio POST-metodilla että RemoveUser-operaatio Delete-metodina vaativat asiakasta käyttämään väärentämisen estotokenia.

Muokkaa asiaankuuluvaa tietoa

Monet saattavat pohtia, voisiko luodun piilotetun verkkotunnuksen nimi korvata heidän omallaan ja voiko evästeen nimen muuttaa omakseen.

Vastaus on kyllä, näytetään lyhyesti:

Lisää Startupin ConfigureServices-metodiin seuraava, jotta muutat oletusnimeä sen mukaisesti.


Huomautus: Suurin ero asp.net ytimen ja asp.net välillä on,Core tukee validointiparametrien välittämistä pyytämällä otsikkoa, ei muodostaa muotoja!

private const string AntiforgeryTokenFieldName = "__RequestVerificationToken";
private const string AntiforgeryTokenHeaderName = "RequestVerificationToken";


Voit katsoa lähdekoodin:Hyperlinkin kirjautuminen on näkyvissä.

Testikoodi:





Tulos: Yrittäessämme päästä test1-metodiin palautetaan 400-virhe, test2-metodin käyttäminen palauttaa läpäisemämme str-parametrin, ja näet, että AutoValidateAntiforgeryToken-ominaisuus ei sieppaa GET-pyyntöä.

(Loppu)




Edellinen:Fiddler korvaa linkit, pyytää uudelleenohjausta
Seuraava:[käännös] SQL Server SQL Count
 Vuokraisäntä| Julkaistu 8.7.2023 22.07.08 |
ASP.NET MVC pyytää XSS Dangerous Content Validation (ValidateInput)
https://www.itsvse.com/thread-10624-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com