Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 37886|Antwoord: 4

[ASP.NET] mvc ajax met AntiForgeryToken om CSRF-aanvallen te voorkomen

[Link kopiëren]
Geplaatst op 02-11-2017 10:06:29 | | | |
Het is vaak te zien dat de ajax-postgegevens op de server in het project niet zijn gemarkeerd met anti-vervalsingstags, wat CSRF-aanvallen veroorzaakt, en het is heel eenvoudig om anti-vervalsingsmarkeringen aan Asp.net MVC toe te voegen door Html.AntiForgeryToken() aan het formulier toe te voegen.
Html.AntiForgeryToken() genereert een paar versleutelde strings die in cookies en input worden opgeslagen. We brengen ook AntiForgeryToken in de ajax-post
Html.AntiForgeryToken() in MVC is een maatregel om cross-site request forgery (CSRF: Cross-site request forgery) aanvallen te voorkomen, wat verschilt van XSS (XSS staat ook bekend als CSS: Cross-Site-Script). XSS gebruikt over het algemeen vertrouwde gebruikers op de site om kwaadaardige scriptcode in het netwerk in te voegen om aan te vallen. CSRF daarentegen is een pseudo-vertrouwde gebruiker die een website aanvalt.
Laten we eerst de code als volgt bekijken:

Tijdens het uitvoeren ziet de gegenereerde html-code er als volgt uit:



Laten we op de testknop klikken om een test aan te vragen en te zien of er anti-namaakkoekjes in zitten, zoals te zien is in de onderstaande figuur:



De code in de controller is als volgt:

We moeten de functie ValidateAntiForgeryToken aan elke controller toevoegen; als de gebruiker de AntiForgeryToken niet meebrengt, kunnen we een vriendelijke prompt aan de gebruiker teruggeven, als volgt:







Vorig:asp.net mvc BindAttribute binding-functie
Volgend:Een van de vergelijkingen tussen CMMI en Agile: het essentiële verschil tussen de twee
 Huisbaas| Geplaatst op 02-11-2017 11:05:37 |
Voor bovenstaande methode moet je de functie aanpassen en kun je de standaard functie ValidateAntiForgeryToken niet gebruiken

De standaardfunctie is om de waarde in het formulier te nemen en deze vervolgens te beoordelen



Ik heb een postmethode ingekapseld met jQuery met anti-vervalsingsvalidatie, en de code is als volgt:



 Huisbaas| Geplaatst op 02-11-2017 11:17:36 |
IsAjaxRequest om te bepalen of het een ajax-verzoek is

In wezen bepaalt IsAjaxRequest() of er een X-Requested-With-veld in de header is en of het een XMLHttpRequest is

De documentatie bekijken is nutteloos, het hangt af van de broncode.
 Huisbaas| Geplaatst op 20-02-2021 19:22:26 |
ASP.NET CSRF-aanval Ajax-verzoek om inkapseling
https://www.itsvse.com/thread-8077-1-1.html
Geplaatst op 09-12-2021 18:37:56 |
testtesttesttest
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com