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

[ASP.NET] ASP.NET Atac CSRF Încapsularea cererii Ajax

[Copiază linkul]
Postat la 2019-9-12 09:42:54 | | | |
Ce este CSRF?

CSRF (Cross-site request forgery), cunoscut și sub denumirea de atac cu un click/session riding, abreviere chineză: CSRF/XSRF. CSRF (Cross Site Request Forgery) este o metodă de atac în rețea care a fost listată printre cele mai mari 20 de riscuri de securitate de pe Internet în 2007. Alte riscuri de securitate, precum injectarea de scripturi SQL și atacurile cross-site de scripturi de domeniu, au devenit bine cunoscute în ultimii ani, iar multe site-uri web s-au apărat împotriva acestora. Totuși, CSRF este încă un concept străin pentru majoritatea oamenilor. Chiar și cel mai faimos Gmail a avut o vulnerabilitate CSRF la sfârșitul anului 2007, care a fost spart și a cauzat pierderi uriașe utilizatorilor Gmail.

Ce poate face CSRF?

Poți înțelege astfel de atacuri CSRF: un atacator ți-a furat identitatea și a trimis cereri malițioase în numele tău. CSRF poate face lucruri precum trimiterea de emailuri, mesajele, furtul contului tău sau chiar cumpărarea de bunuri și transferul de monedă virtuală în numele tău...... Problemele cauzate includ: scurgeri de confidențialitate personală și securitatea proprietății.

ASP.NET Marca anti-falsificare MVC AntiForgeryToken

În ASP.NET MVC, tokenurile de formular și tokenurile de cookie-uri sunt generate automat implicit ori de câte ori se folosește @Html.AntiForgeryToken() pe pagina de vizualizare. Totuși, dacă vrem să obținem recuperarea manuală în fundal, trebuie să folosim clasa System.Web.Helpers.AntiForgery, iar prietenii interesați să vizualizeze codul sursă vor descoperi că, de fapt, metoda de apel intern a @Html.AntiForgeryToken() este aceeași ca cea a clasei AntiForgery.

Este folosit în principal pentru a obține formularul corespunzător și tokenul de cookie prin două metode statice: AntiForgery.GetHtml() sau AntiForgery.GetTokens (string oldCookieToken, out string newCookieToken, out string formToken). Totuși, trebuie menționat că, odată ce metoda GetHtml este apelată, tokenul cookie corespunzător va fi generat automat, iar apoi o bucată de cod HTML cu câmpul token de formular ascuns va fi returnată direct, iar valoarea returnată va fi în acest formular:

<input name="__RequestVerificationToken" type="hidden" value="8_nUk_3z0svQr9qcvRBi9SWMZ2-SYmuy9kRe9OgRobGULkb2Z4JZxRZFhR0ndeoy9hmDLDru7MFk-W4xrnL5z5T6VbkfXK7fyRk-egQBGm41">

Numele câmpului ascuns este, în general, fixat la "__RequestVerificationToken", iar valoarea este un token de securitate criptat. Acest câmp ascuns este de obicei plasat în formularul care urmează să fie trimis, iar trimiterea finală este verificată în raport cu tokenul cookie.

Dacă folosești metoda GetTokens, poți obține formularul criptat și tokenul cookie după ce ai introdus parametrii corespunzători, dar aici trebuie să stochezi valorile corespunzătoare tu însuți.

În continuare, vom introduce metoda de actualizare manuală a AntiForgeryToken, în principal prin AJAX.

Cod de pachet:



Cod de test:



Am constatat că atunci când se trimite o cerere ajax, parametrii __RequestVerificationToken sunt incluși automat, așa cum se arată în figura de mai jos:







Precedent:Windows CMD Vizualizează tutorialul istoric al comenzilor
Următor:Meet Azure DevOps
 Proprietarul| Postat la 2019-9-25 18:09:46 |
Postat la 2019-11-10 15:06:37 |
Nu ai scris un plan de tratament de fundal? Procesarea în fundal din interiorul antetului este diferită de procesarea în fundal fără antet
 Proprietarul| Postat la 2019-11-21 10:38:40 |
Danqingcheng a postat pe 2019-11-10 15:06
Nu ai scris un plan de tratament de fundal? Procesarea în fundal din interiorul antetului este diferită de procesarea în fundal fără antet

Hmm, trebuie să rescriu filtrul
 Proprietarul| Postat la 20-02-2021 19:22:14 |
MVC ajax cu AntiForgeryToken pentru a preveni atacurile CSRF
https://www.itsvse.com/thread-4207-1-1.html
Postat pe 2021-12-9 18:41:29 |
testtesttesttesttesttesttest
 Proprietarul| Postat la 2022-4-17 12:59:39 |
 Proprietarul| Postat la 26-09-2024 15:57:52 |
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