Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 37886|Répondre: 4

[ASP.NET] MVC ajax avec AntiForgeryToken pour prévenir les attaques CSRF

[Copié le lien]
Publié sur 02/11/2017 10:06:29 | | | |
On constate souvent que les données de publication ajax vers le serveur du projet ne sont pas marquées par des balises anti-contrefaçon, provoquant des attaques CSRF, et il est très facile d’ajouter des marques anti-contrefaçon à Asp.net MVC en ajoutant Html.AntiForgeryToken() au formulaire.
Html.AntiForgeryToken() génère une paire de chaînes de caractères chiffrées qui sont stockées dans les cookies et les entrées. Nous apportons aussi AntiForgeryToken dans le post d’AJAX
Html.AntiForgeryToken() dans MVC est une mesure visant à prévenir les attaques de falsification de requêtes intersites (CSRF : Cross-site request forgery), ce qui diffère de XSS (XSS est également connu sous le nom de CSS : Cross-Site-Script), XSS utilise généralement des utilisateurs de confiance sur le site pour insérer un code de script malveillant dans le réseau afin d’attaquer. Le CSRF, en revanche, est un utilisateur pseudo-fiable attaquant un site web.
Commençons par voir le code comme suit :

Lors de l’exécution, le code html généré ressemble à ceci :



Cliquons sur le bouton test pour demander un test et voir s’il contient des cookies anti-contrefaçon, comme montré dans la figure ci-dessous :



Le code dans le contrôleur est le suivant :

Nous devons ajouter la fonctionnalité ValidateAntiForgeryToken à chaque contrôleur ; si l’utilisateur n’apporte pas l’AntiForgeryToken, nous pouvons renvoyer une invite amicale à l’utilisateur, comme suit :







Précédent:asp.net fonctionnalité de liaison BindAttribute mvc
Prochain:L’une des comparaisons entre CMMI et Agile : la différence essentielle entre les deux
 Propriétaire| Publié sur 02/11/2017 11:05:37 |
Pour la méthode ci-dessus, vous devez personnaliser la fonctionnalité, et vous ne pouvez pas utiliser la fonction par défaut ValidateAntiForgeryToken

La caractéristique par défaut consiste à prendre la valeur dans le formulaire et à la juger ensuite



J’ai encapsulé une méthode post avec jQuery avec une validation anti-faux, et le code est le suivant :



 Propriétaire| Publié sur 02/11/2017 11:17:36 |
IsAjaxRequest pour déterminer s’il s’agit d’une requête ajax

Essentiellement, IsAjaxRequest() détermine s’il existe un champ X-Requested-With dans l’en-tête et s’il s’agit d’une requête XMLHttpRequest

Regarder la documentation ne sert à rien, cela dépend du code source.
 Propriétaire| Publié sur 20/02/2021 19:22:26 |
ASP.NET Attaque CSRF Encapsulation de requêtes Ajax
https://www.itsvse.com/thread-8077-1-1.html
Publié sur 09/12/2021 18:37:56 |
testtesttest
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com