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: 37886|Răspunde: 4

[ASP.NET] MVC ajax cu AntiForgeryToken pentru a preveni atacurile CSRF

[Copiază linkul]
Postat pe 02.11.2017 10:06:29 | | | |
Se observă adesea că datele postării ajax către serverul din proiect nu sunt marcate cu etichete anti-falsificare, ceea ce provoacă atacuri CSRF, și este foarte ușor să se adauge mărci anti-contrafacere în Asp.net MVC prin adăugarea Html.AntiForgeryToken() în formular.
Html.AntiForgeryToken() generează o pereche de șiruri criptate care sunt stocate în cookie-uri și intrare. Aducem și AntiForgeryToken în postarea ajax
Html.AntiForgeryToken() în MVC este o măsură pentru prevenirea atacurilor cross-site request forgery (CSRF: Cross-site request forgery), care este diferită de XSS (XSS este cunoscut și ca CSS: Cross-Site-Script), XSS utilizează în general utilizatori de încredere din site pentru a introduce cod de script malițios în rețea pentru a ataca. CSRF, pe de altă parte, este un utilizator pseudo-de încredere care atacă un site web.
Mai întâi, să vedem codul astfel:

Când rulează, codul html generat arată astfel:



Să dăm click pe butonul de testare pentru a solicita un test și să vedem dacă are cookie-uri anti-contrafacere, așa cum se vede în figura de mai jos:



Codul din controller este următorul:

Trebuie să adăugăm funcția ValidateAntiForgeryToken fiecărui controller, iar dacă utilizatorul nu aduce AntiForgeryToken, putem returna un prompt prietenos utilizatorului, după cum urmează:







Precedent:asp.net funcție de legare mvc BindAttribute
Următor:Una dintre comparațiile dintre CMMI și Agile: diferența esențială dintre cele două
 Proprietarul| Postat pe 02.11.2017 11:05:37 |
Pentru metoda de mai sus, trebuie să personalizezi funcția și nu poți folosi funcția implicită ValidateAntiForgeryToken

Funcția implicită este să iei valoarea din formularul și apoi să o judeci



Am încapsulat o metodă post cu jQuery cu validare anti-falsificare, iar codul este următorul:



 Proprietarul| Postat pe 02.11.2017 11:17:36 |
IsAjaxRequest pentru a determina dacă este o cerere ajax

Practic, IsAjaxRequest() determină dacă există un câmp X-Requested-With în antet și dacă este un XMLHttpRequest

Să te uiți la documentație este inutil, depinde de codul sursă.
 Proprietarul| Postat pe 20.02.2021 19:22:26 |
ASP.NET Atac CSRF Încapsularea cererii Ajax
https://www.itsvse.com/thread-8077-1-1.html
Postat pe 09.12.2021 18:37:56 |
testtesttesttest
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