Pourriez-vous expliquer le but de ValidateAntiForgeryToken et me montrer un exemple ValidateAntiForgeryToken
dans MVC 4?
Je n'ai trouvé aucun exemple expliquant cet attribut?
c#
asp.net-mvc
asp.net-mvc-4
Tabriz Atayi
la source
la source
.BeginForm
aide. Donc, cette chose est là automatiquement, comme dans RailsRéponses:
Le support anti-contrefaçon de MVC écrit une valeur unique dans un cookie HTTP uniquement, puis la même valeur est écrite dans le formulaire. Lorsque la page est envoyée, une erreur est générée si la valeur du cookie ne correspond pas à la valeur du formulaire.
Il est important de noter que la fonctionnalité empêche les falsifications de demandes intersites . C'est-à-dire un formulaire d'un autre site qui publie sur votre site dans le but de soumettre du contenu masqué à l'aide des informations d'identification d'un utilisateur authentifié. L'attaque consiste à inciter l'utilisateur connecté à soumettre un formulaire ou à déclencher simplement un formulaire par programme lors du chargement de la page.
La fonctionnalité n'empêche aucun autre type d'attaque basée sur la falsification ou la falsification de données.
Pour l'utiliser, décorez la méthode d'action ou le contrôleur avec l'
ValidateAntiForgeryToken
attribut et passez un appel à@Html.AntiForgeryToken()
dans les formulaires de publication dans la méthode.la source
L'objectif de base de l'attribut ValidateAntiForgeryToken est d'empêcher les attaques de contrefaçon de demande intersite.
Une falsification de demande intersite est une attaque dans laquelle un élément de script nuisible, une commande malveillante ou un code est envoyé depuis le navigateur d'un utilisateur de confiance. Pour plus d'informations à ce sujet, veuillez visiter http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages .
Il est simple à utiliser, vous devez décorer la méthode avec l'attribut ValidateAntiForgeryToken comme ci-dessous:
Il est dérivé de l'espace de noms System.Web.Mvc.
Et à votre avis, ajoutez ce code pour ajouter le jeton afin qu'il soit utilisé pour valider le formulaire lors de la soumission.
la source
Dans ASP.Net Core, le jeton anti contrefaçon est automatiquement ajouté aux formulaires, vous n'avez donc pas besoin d'ajouter
@Html.AntiForgeryToken()
si vous utilisez un élément de formulaire de rasoir ou si vous utilisez IHtmlHelper.BeginForm et si la méthode du formulaire n'est pas GET.Il générera un élément d'entrée pour votre formulaire similaire à ceci:
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8HSQ_cdnkvBPo-jales205VCq9ISkg9BilG0VXAiNm3Fl5Lyu_JGpQDA4_CLNvty28w43AL8zjeR86fNALdsR3queTfAogif9ut-Zd-fwo8SAYuT0wmZ5eZUYClvpLfYm4LLIVy6VllbD54UxJ8W6FA">
Et lorsque l'utilisateur soumet un formulaire, ce jeton est vérifié côté serveur si la validation est activée.
[ValidateAntiForgeryToken]
l'attribut peut être utilisé contre des actions. Les demandes adressées à des actions auxquelles ce filtre est appliqué sont bloquées, sauf si la demande comprend un jeton antiforgery valide.[AutoValidateAntiforgeryToken]
l'attribut peut être utilisé contre les contrôleurs. Cet attribut fonctionne de manière identique à l'attribut ValidateAntiForgeryToken, sauf qu'il ne nécessite pas de jetons pour les demandes effectuées à l'aide des méthodes HTTP suivantes:GET HEAD OPTIONS TRACE
Informations supplémentaires: https://docs.microsoft.com/pl-pl/aspnet/core/security/anti-request-forgery
la source
Microsoft nous fournit des fonctionnalités intégrées que nous utilisons dans notre application à des fins de sécurité, afin que personne ne puisse pirater notre site ou envahir certaines informations critiques.
Du but de ValidateAntiForgeryToken dans l'application MVC par Harpreet Singh:
la source