Empêcher les attaques par falsification de requête intersite (csrf) dans les formulaires Web asp.net
J'ai créé un ASP.Net Web formulaire de demande à l'aide de Visual Studio 2013 et je suis en utilisant Dot Net Cadre de Travail de 4,5, et je veux m'assurer que mon site est sécurisé à partir de Cross-Site Request Forgery (CSRF), j'ai trouvé de nombreux articles parlant de cette fonctionnalité est implémentée sur apps MVC, mais très peu parler de formulaires web,
sur cette question StackOverflow un commentaire indiquant que
"C'est une vieille question, mais la plus récente de Visual Studio 2012 ASP.NET
de modèle pour les formulaires web inclut l'anti-CSRF code de boulangerie dans le maître
page. Si vous n'avez pas les modèles, voici le code
génère:..."
mais mon maître page ne contient pas le code qu'il a mentionné dans sa réponse, donc quelqu'un peut-il m'aider?
est-il vraiment mis en œuvre? si non, veuillez indiquer quelle est la meilleure façon de le faire?
source d'informationauteur Nada N. Hantouli
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer la. Dans le Formulaire en ligne ajouter:
Cela va ajouter un champ caché et un cookie. Donc, si vous remplissez certaines données de formulaire et de le poster sur le serveur vous avez besoin d'une vérification simple:
AntiForgery.Validate();
déclenche une exception si les anti XSFR vérification échoue.ViewStateUserKey & Double Soumettre Cookie
À partir de Visual Studio 2012, Microsoft a ajouté intégré dans la protection CSRF à de nouvelles formes de web des projets d'application. Pour utiliser ce code, ajouter un nouveau ASP .NET Web les Formulaires de Demande à votre solution et de consulter le Site.Master code-behind de la page. Cette solution s'appliquera à la protection CSRF à toutes les pages de contenu qui héritent de la Site.Page maître.
Les conditions suivantes doivent être remplies pour que cette solution fonctionne:
Toutes les formes de web faire des modifications de données doit utiliser le Site.Page maître.
Toutes les demandes de prise de modifications de données doit utiliser le ViewState.
Le site web doit être libre de tous les Cross-Site Scripting (XSS) vulnérabilités. Voir comment fixer le Cross-Site Scripting (XSS) à l'aide de Microsoft .Net la Protection Web de la Bibliothèque pour plus de détails.
Lorsque vous créez un nouveau Formulaire Web de Demande de projet dans VS 2013, le site.maître.cs inclura automatiquement le XSRF/CSRF code dans le
Page_Init
section de la classe. Si vous ne recevez pas le code généré, vous pouvez manuellementCopy
+Paste
le code. Si vous êtes à l'aide de C#, puis utilisez le ci-dessous:-Vous pouvez utiliser en dessous de morceau de code, qui va vérifier la demande d'où il vient
Il fonctionne très bien pour moi!!!