Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 37886|Odpoveď: 4

[ASP.NET] mvc ajax s AntiForgeryTokenom na zabránenie útokom CSRF

[Kopírovať odkaz]
Zverejnené 2. 11. 2017 10:06:29 | | | |
Často sa vidí, že ajax post-dáta na serveri v projekte nie sú označené anti-falšovateľskými tagmi, čo spôsobuje útoky CSRF, a je veľmi jednoduché pridať antifalšovacie značky do Asp.net MVC pridaním Html.AntiForgeryToken() do formulára.
Html.AntiForgeryToken() generuje dvojicu šifrovaných reťazcov, ktoré sú uložené v cookies a vstupe. V príspevku o ajax tiež prinášame AntiForgeryToken
Html.AntiForgeryToken() v MVC je opatrenie na zabránenie útokom na falšovanie požiadaviek medzi lokalitami (CSRF: Cross-site request forgery), ktoré sa líšia od XSS (XSS je známy aj ako CSS: Cross-Site-Script). XSS vo všeobecnosti využíva dôveryhodných používateľov na stránke na vkladanie škodlivého skriptového kódu do siete na útok. CSRF je naopak pseudo-dôveryhodný používateľ útočiaci na webovú stránku.
Najprv sa pozrime na kód nasledovne:

Pri spustení vyzerá vygenerovaný html kód takto:



Kliknime na tlačidlo testu, aby sme si vyžiadali test a zistili, či obsahuje anti-falšovateľské cookies, ako je znázornené na obrázku nižšie:



Kód v ovládači je nasledovný:

Musíme pridať funkciu ValidateAntiForgeryToken ku každému ovládaču, ak používateľ neprinesie AntiForgeryToken, môžeme používateľovi vrátiť priateľskú výzvu, nasledovne:







Predchádzajúci:asp.net funkcia viazania mvc BindAttribute
Budúci:Jedno z porovnaní medzi CMMI a Agile: podstatný rozdiel medzi týmito dvoma
 Prenajímateľ| Zverejnené 2. 11. 2017 11:05:37 |
Pre vyššie uvedenú metódu musíte funkciu prispôsobiť a nemôžete použiť predvolenú funkciu ValidateAntiForgeryToken

Predvolenou funkciou je vziať hodnotu vo forme formulára a potom ju posúdiť



Zapuzdril som metódu postu pomocou jQuery s anti-falšovaním a kód je nasledovný:



 Prenajímateľ| Zverejnené 2. 11. 2017 11:17:36 |
IsAjaxRequest na určenie, či ide o ajax požiadavku

V podstate IsAjaxRequest() určuje, či sa v hlavičke nachádza pole X-Requested-With a či ide o XMLHttpRequest

Pozerať sa na dokumentáciu je zbytočné, závisí to od zdrojového kódu.
 Prenajímateľ| Zverejnené 20. 2. 2021 19:22:26 |
ASP.NET CSRF útok Ajax žiada zapuzdrenie
https://www.itsvse.com/thread-8077-1-1.html
Zverejnené 9. 12. 2021 18:37:56 |
testtesttesttesttest
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com