ValidateAntiForgeryToken: Sein Zweck und seine Implementierung
Formulare in MVC-Webanwendungen sind häufig Ziele für Cross-Site-Request-Forgery-Angriffe (CSRF). CSRF-Angriffe treten auf, wenn bösartige Websites Anfragen an vertrauenswürdige Websites senden und die Browser autorisierter Benutzer dazu verleiten, diese Anfragen zu senden, wodurch Angreifer nicht autorisierte Aktionen ausführen können.
Um diese Schwachstelle zu beheben, bietet das .NET MVC-Framework das ValidateAntiForgeryToken Attribut, das eine entscheidende Rolle bei der Verhinderung von CSRF-Angriffen spielt. Dieses Attribut stellt sicher, dass an eine bestimmte Aktionsmethode übermittelte Formulare tatsächlich vom Server und nicht von einer externen Quelle stammen.
Funktionsweise von ValidateAntiForgeryToken
Bei einer Aktionsmethode Ausgestattet mit ValidateAntiForgeryToken generiert das MVC-Framework ein eindeutiges, einmaliges Token und bettet es mithilfe von in das ausgeblendete Feld des HTML-Formulars ein @Html.AntiForgeryToken() Hilfsmethode. Dieses Token ist für den Benutzer, die Sitzung und den Browser eindeutig.
Wenn der Benutzer das Formular absendet, vergleicht das Framework das Token im ausgeblendeten Feld mit dem zuvor generierten Token. Wenn die Token übereinstimmen, wird die Formularübermittlung validiert. Andernfalls wird ein Fehler ausgegeben und die Übermittlung abgelehnt, wodurch der CSRF-Angriff abgeschwächt wird.
Beispielverwendung
Um das ValidateAntiForgeryToken-Attribut in MVC 4 zu implementieren, führen Sie die folgenden Schritte aus:
Dekorieren Sie die Aktionsmethode, die Sie schützen möchten [ValidateAntiForgeryToken]-Attribut:
[HttpPost] [ValidateAntiForgeryToken] public ActionResult Create(MyModel model) { // Code to handle the form submission }
Fügen Sie einen Aufruf von @Html.AntiForgeryToken() im Formular-Tag des Formulars hinzu:
<form action="@Url.Action("Create", "MyController")" method="post"> @Html.AntiForgeryToken() <!-- Other form controls --> </form>
Hinweis: Die Hilfsmethode @Html.AntiForgeryToken() muss innerhalb des Formular-Tags des Formulars, jedoch vor allen anderen Formularsteuerelementen, platziert werden.
Indem Sie diese Schritte befolgen, können Sie Ihre MVC-Webanwendung effektiv vor CSRF-Angriffen schützen und die Integrität Ihrer Formularübermittlungen sicherstellen.
Das obige ist der detaillierte Inhalt vonWie verhindert ValidateAntiForgeryToken CSRF-Angriffe in ASP.NET MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!