Es ist oft zu beobachten, dass die Ajax-Postdaten auf den Server im Projekt nicht mit Anti-Fälschungs-Tags gekennzeichnet sind, was CSRF-Angriffe verursacht, und es ist sehr einfach, Anti-Fälschungsmarkierungen zu Asp.net MVC hinzuzufügen, indem man Html.AntiForgeryToken() zum Formular hinzufügt. Html.AntiForgeryToken() erzeugt ein Paar verschlüsselter Strings, die in Cookies und Eingaben gespeichert werden. Wir bringen auch AntiForgeryToken im Ajax-Beitrag
Html.AntiForgeryToken() in MVC ist eine Maßnahme zur Verhinderung von Cross-Site Request Forgery (CSRF: Cross-site Request Forgery) Angriffen, die sich von XSS unterscheidet (XSS ist auch bekannt als CSS: Cross-Site-Script); XSS nutzt im Allgemeinen vertrauenswürdige Benutzer auf der Seite, um bösartigen Skriptcode ins Netzwerk einzufügen, um anzugreifen. CSRF hingegen ist ein pseudo-vertrauenswürdiger Nutzer, der eine Website angreift. Zuerst betrachten wir den Code wie folgt:
Beim Ausführen sieht der generierte HTML-Code so aus:
Klicken wir auf den Test-Button, um einen Test anzufordern und zu sehen, ob er Anti-Fälschungs-Cookies enthält, wie in der untenstehenden Abbildung gezeigt:
Der Code im Controller lautet wie folgt:
Wir müssen die Funktion ValidateAntiForgeryToken zu jedem Controller hinzufügen; wenn der Benutzer das AntiForgeryToken nicht mitbringt, können wir dem Nutzer eine freundliche Aufforderung wie folgt zurückgeben:
|