Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 44609|Răspunde: 1

[Sursă] Etichetele anti-falsificare ValidateAntiForgeryToken și AutoValidateAntiforgeryToken sunt explicate în detaliu

[Copiază linkul]
Postat pe 20.02.2021 19:57:29 | | | |
Pentru a preveni atacurile CSR asp.net F, mvc oferă funcția anti-contrafacere ValidateAntiForgeryToken, iar în noua versiune a asp.net framework de bază, Microsoft oferă funcția AutoValidateAntiforgeryToken, în special ValidateAntiForgeryToken și AutoValidateAntiforgeryToken Care este diferența, acest articol o va explica în detaliu.

MVC ajax cu AntiForgeryToken pentru a preveni atacurile CSRF
https://www.itsvse.com/thread-4207-1-1.html

ASP.NET Atac CSRF Încapsularea cererii Ajax
https://www.itsvse.com/thread-8077-1-1.html
Conceptul CSRF

Falsificarea cererii cross-site CSRF, la fel ca atacurile XSS, este extrem de dăunătoare, poți înțelege astfel: atacatorul îți fură identitatea și trimite o cerere malițioasă în numele tău, care este complet legitimă pentru server, dar execută o acțiune pe care atacatorul o așteaptă, cum ar fi trimiterea de emailuri și mesaje în numele tău, furtul contului, adăugarea administratorilor de sistem sau chiar achiziționarea de bunuri, transferuri de monedă virtuală, etc. Web A este un site web cu o vulnerabilitate CSRF, Web B este un site malițios creat de un atacator, iar Utilizatorul C este un utilizator legitim al Web A.


ASP.NET MVC împotriva atacurilor CSRF

Pe pagina de vizualizare, folosește @Html.AntiForgeryToken() pentru a adăuga o etichetă, iar când utilizatorul accesează pagina, backend-ul va genera automat un cod HTML ascuns cu eticheta, după cum urmează:


<nume de intrare="__RequestVerificationToken" type="hidden" value="CfDJ8FBn4LzSYglJpE6Q0fWvZ8WDMTgwK49lDU1XGuP5-5j4JlSCML_IDOO3XDL5EOyI_mS2Ux7lLSfI7ASQnIIxo2ScEJvnABf9v51TUZl_iM2S63zuiPK4lcXRPa_KUUDbK-LS4HD16pJusFRppj-dEGc" />
Controlerul de fundal trebuie setat [ValidateAntiForgeryToken] pentru a preveni falsificarea formularelor.

ValidateAntiForgeryToken și AutoValidateAntiforgeryToken sunt diferite

AutoValidateAntiforgeryTokenAuthorizationFilter moștenește ValidateAntiforgeryTokenAuthorizationFilter, dar rescrie doar metoda ShouldValidate în acesta.

Proprietatea AutoValidateAntiforgeryToken care determină validarea tokenurilor anti-falsificare pentru toate metodele HTTP nesigure.Metodele HTTP altele decât GET, HEAD, OPTIONS și TRACE necesită toate un token anti-falsificare。 Aceasta poate fi aplicată ca un filtru global pentru a declanșa validarea implicită a tokenului anti-falsificare a aplicației.

Autentificarea cu hyperlink este vizibilă.

AutoValidateAntiforgeryTokenAttribute validează apelul către AutoValidateAntiforgeryTokenAuthorizationFilter, care moștenește de la ValidateAntiforgeryTokenAuthorizationFilter,Metoda ShouldValidate a fost rescrisă, returnarea true înseamnă că trebuie validată, iar returnarea false nu va fi validată, așa cum se arată în figura de mai jos:

Analizează codul sursă:



AutoValidateAntiforgeryTokenAttribute permite aplicarea globală a validării tokenurilor anti-falsificare tuturor metodelor nesigure, cum ar fi POST, PUT, PATCH și DELETE. Deci nu trebuie să adaugi proprietatea [ValidateAntiForgeryToken] la fiecare acțiune care o cere.

Pentru a-l folosi, adaugă următorul cod la metoda de clasă Startup a ConfigureServices:


Dacă trebuie să ignorați autentificarea anti-contrafacere, puteți adăuga [IgnorăTokenAntifalsificareatribute acțiunii.

Uneori s-ar putea să trebuiască să etichetezi mai multe cereri pe un controler, în timp ce unele cereri nu trebuie falsificate, cum ar fi diverse operațiuni bazate pe GET. Există mai multe unelte pe care le poți folosi pentru a face procesul mai convenabil și mai confortabil. Primul este proprietatea AutoValidateAntiforgeryToken. Se comportă ca proprietatea ValidateAntiForgeryToken. Totuși, va ignora automat acțiunile apelate de metodele concepute pentru recuperarea datelor: GET, HEAD, OPTIONS și TRACE. Acest lucru îți permite să adaugi rapid și ușor metode anti-contrafacere tuturor metodelor care pot modifica datele fără a afecta modul în care sunt recuperate.

Următorul cod este un exemplu al proprietății AutoValidateAntiforgeryToken:


În acest exemplu, ambele operațiuni normale Index (GET) vor funcționa indiferent de sursă, în timp ce atât operația Index cu metoda POST, cât și operația RemoveUser ca metodă Delete vor necesita clientului să folosească un token anti-falsificare.

Personalizează informațiile relevante

Mulți oameni s-ar putea întreba dacă numele domeniului ascuns generat poate fi înlocuit cu propriul lor domeniu și dacă numele cookie-ului poate fi schimbat în al lor.

Răspunsul este da, să demonstrăm pe scurt:

În metoda ConfigureServices a Startup-ului, adăugați următoarele pentru a modifica numele implicit în consecință.


Notă: Cea mai mare diferență între asp.net de bază și asp.net este,Core suportă transmiterea parametrilor de validare prin solicitarea unui antet, nu să formeze forme!

șirul privat const AntiforgeryTokenFieldName = "__RequestVerificationToken";
string const privat AntiforgeryTokenHeaderName = "RequestVerificationToken";


Puteți vizualiza codul sursă:Autentificarea cu hyperlink este vizibilă.

Cod de test:





Rezultat: Încercarea accesării metodei test1 returnează o eroare 400, accesarea metodei test2 returnează parametrul str pe care l-am trecut, iar funcția AutoValidateAntiforgeryToken nu interceptează cererea GET.

(Sfârșit)




Precedent:Fiddler înlocuiește linkurile, solicită redirecționarea redirecționării
Următor:[întoarce] SQL Server SQL Count
 Proprietarul| Postat pe 08.07.2023 22:07:08 |
ASP.NET MVC solicită validarea conținutului periculos XSS (ValidateInput)
https://www.itsvse.com/thread-10624-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com