Könnten Sie den Zweck von ValidateAntiForgeryToken erläutern und mir ein Beispiel ValidateAntiForgeryToken
in MVC 4 zeigen?
Ich konnte keine Beispiele finden, die dieses Attribut erklären.
c#
asp.net-mvc
asp.net-mvc-4
Tabriz Atayi
quelle
quelle
.BeginForm
Helfer zu integrieren. Also dieses Ding ist automatisch da, wie in RailsAntworten:
Die Anti-Fälschungs-Unterstützung von MVC schreibt einen eindeutigen Wert in ein Nur-HTTP-Cookie, und dann wird derselbe Wert in das Formular geschrieben. Wenn die Seite gesendet wird, wird ein Fehler ausgegeben, wenn der Cookie-Wert nicht mit dem Formularwert übereinstimmt.
Es ist wichtig zu beachten, dass die Funktion Fälschungen von standortübergreifenden Anforderungen verhindert . Dies ist ein Formular von einer anderen Site, das auf Ihrer Site veröffentlicht wird, um versteckte Inhalte mit den Anmeldeinformationen eines authentifizierten Benutzers zu übermitteln. Der Angriff besteht darin, den angemeldeten Benutzer zum Senden eines Formulars zu verleiten oder einfach programmgesteuert ein Formular auszulösen, wenn die Seite geladen wird.
Die Funktion verhindert keine andere Art von Datenfälschung oder manipulationsbasierten Angriffen.
Um es zu verwenden, dekorieren Sie die Aktionsmethode oder den Controller mit dem
ValidateAntiForgeryToken
Attribut und rufen Sie@Html.AntiForgeryToken()
in den Formularen auf, die an die Methode gesendet werden.quelle
Der Hauptzweck des ValidateAntiForgeryToken-Attributs besteht darin, standortübergreifende Fälschungsangriffe zu verhindern.
Eine standortübergreifende Anforderungsfälschung ist ein Angriff, bei dem ein schädliches Skriptelement, ein böswilliger Befehl oder Code vom Browser eines vertrauenswürdigen Benutzers gesendet wird. Weitere Informationen hierzu finden Sie unter http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .
Es ist einfach zu verwenden. Sie müssen die Methode wie folgt mit dem Attribut ValidateAntiForgeryToken dekorieren:
Es wird vom System.Web.Mvc-Namespace abgeleitet.
Fügen Sie Ihrer Ansicht nach diesen Code hinzu, um das Token hinzuzufügen, damit das Formular bei der Übermittlung überprüft werden kann.
quelle
In ASP.Net Core wird das Anti-Fälschungs-Token automatisch zu Formularen hinzugefügt. Sie müssen es also nicht hinzufügen,
@Html.AntiForgeryToken()
wenn Sie ein Rasiermesser-Formularelement verwenden oder wenn Sie IHtmlHelper.BeginForm verwenden und wenn die Methode des Formulars nicht GET ist.Es wird ein Eingabeelement für Ihr Formular generiert, das dem folgenden ähnelt:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
Und wenn der Benutzer das Formular einreicht, wird dieses Token auf der Serverseite überprüft, wenn die Validierung aktiviert ist.
[ValidateAntiForgeryToken]
Attribut kann gegen Aktionen verwendet werden. Anforderungen an Aktionen, auf die dieser Filter angewendet wird, werden blockiert, es sei denn, die Anforderung enthält ein gültiges Antiforgery-Token.[AutoValidateAntiforgeryToken]
Attribut kann gegen Controller verwendet werden. Dieses Attribut funktioniert identisch mit dem Attribut ValidateAntiForgeryToken, außer dass für Anforderungen, die mit den folgenden HTTP-Methoden gestellt werden, keine Token erforderlich sind:GET HEAD OPTIONS TRACE
Zusätzliche Informationen: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
quelle
Microsoft bietet uns integrierte Funktionen, die wir aus Sicherheitsgründen in unserer Anwendung verwenden, sodass niemand unsere Website hacken oder in wichtige Informationen eindringen kann.
Aus dem Zweck von ValidateAntiForgeryToken in der MVC-Anwendung von Harpreet Singh:
quelle