Det ses ofte, at ajax-postdata til serveren i projektet ikke er markeret med anti-forfalskningstags, hvilket forårsager CSRF-angreb, og det er meget nemt at tilføje anti-forfalskningsmærker til Asp.net MVC ved at tilføje Html.AntiForgeryToken() til formularen. Html.AntiForgeryToken() genererer et par krypterede strenge, der gemmes i cookies og input. Vi bringer også AntiForgeryToken i ajax-indlægget
Html.AntiForgeryToken() i MVC er et tiltag til at forhindre cross-site request forgery (CSRF: Cross-site request forgery) angreb, som adskiller sig fra XSS (XSS er også kendt som CSS: Cross-Site-Script), XSS bruger generelt betroede brugere på siden til at indsætte ondsindet scriptkode i netværket for at angribe. CSRF er derimod en pseudo-betroet bruger, der angriber en hjemmeside. Lad os først se koden således:
Når den kører, ser den genererede html-kode sådan ud:
Lad os klikke på testknappen for at anmode om en test og se, om den indeholder anti-forfalskningscookies, som vist i figuren nedenfor:
Koden i controlleren er som følger:
Vi skal tilføje funktionen ValidateAntiForgeryToken til hver controller; hvis brugeren ikke medbringer AntiForgeryToken, kan vi returnere en venlig prompt til brugeren, som følger:
|