Qu'est-ce que le Html.AntiForgeryToken fonction d'aide pour?
Quelqu'un peut-il me donner plus de détails à ce sujet?
Vous devez vous connecter pour publier un commentaire.
Quelqu'un peut-il me donner plus de détails à ce sujet?
Vous devez vous connecter pour publier un commentaire.
Fondamentalement anti faux jetons d'empêcher à quiconque de soumettre les demandes à votre site qui sont générés par un script malveillant n'est pas généré par l'utilisateur. Il est uniquement HTTP cookie (pas lisible par un script qui s'exécute dans le navigateur, mais envoyés par le navigateur et accessible par le serveur) qui est envoyé au client, il est utilisé pour générer un champ caché qui est ensuite validé par rapport au témoin. Au moins, je pense que c'est le processus.
Il y a une bonne description de ce ici, ce qui est exactement ce que vous posez sur
https://blogs.msmvps.com/luisabreu/blog/2009/02/09/the-mvc-platform-the-new-anti-forgery-token/
À l'aide de
AntiForgeryToken
contribue à atténuer contre cross-site request forgery attaques.Quand vous l'utilisez, votre formulaire contient un champ caché et un cookie correspondant sera également créé dans le navigateur.
Puis, lorsque le formulaire est soumis, le champ caché est vérifié par rapport à la valeur de cookie (en supposant que
ValidateAntiForgeryTokenAttribute
est utilisé): si le champ et le cookie de correspondance le post de formulaire est probablement vrai; s'ils ne sont pas, alors il est probablement pas. (Un attaquant tente une attaque CSRF pourrait être en mesure de forger le champ caché, mais ils ne devraient pas être en mesure de forger le cookie correspondant de la valeur.)Bien aujourd'hui, nous nous pencherons sur un type de faille de sécurité dans une application web qui est appelé Cross Site Request Forgery ou CSRF hack. CSRF est le moins connu cousin de XSS.Cross Site Request forgery est un type d'un hack, où le pirate exploite la confiance d'un site web sur l'utilisateur.
Le moyen facile de faire cela est d'utiliser la ValidateAnitForgery jeton d'attribut dans la ProductDetails post d'action de la méthode comme suit
Pour générer le AntiForgeryToken et le Cookie sur le côté client, on le déclare comme suit dans le formulaire HTML dans l'Édition.cshtml
...
Ceci permet d'obtenir une forme d'être publiée sur le serveur a été effectivement produites par le même serveur. Donc faux formes qui n'ont pas le AntiForgeryToken à partir du serveur correct, est rejetée.
Aussi consulter l'exemple simple ici
https://github.com/devcurry/mvc101-anti-forgery-token
En général, les anti-faux-jeton est un HTML caché d'entrée que c'est rendu pour vous afin d'éviter les attaques de type CSRF. Généralement, il fonctionne en comparant la valeur que le serveur a envoyé au client à ce que le client renvoie sur le post. Est que tout ce que vous cherchez?
Vous devriez probablement vérifier MSDN pour plus de détails.
pour plus d'informations, je pense que ce court manuscrit peut aider jusqu' :
Le client demande une page HTML contenant un formulaire. le serveur comprend deux jetons dans la réponse. Un jeton est envoyé en tant que témoin. L'autre est placé dans un champ de formulaire masqué. Les jetons sont générés de façon aléatoire, de sorte que l'adversaire ne peut pas deviner les valeurs. le client soumet le formulaire, il doit envoyer à la fois des jetons sur le serveur. Le client envoie le cookie jeton comme un cookie, et il envoie le formulaire de jeton à l'intérieur de la forme de données. (Un client de navigateur automatiquement ne présente lorsque l'utilisateur soumet le formulaire.) une demande de ne pas inclure à la fois des jetons, le serveur rejette la demande.