J'ai lu sur le site d'apprentissage de mvc d'asp.net sur l'injection de Javascript et l'homme c'est une révélation.Questions sur l'injection de Javascript
Je n'ai jamais réalisé/pensé à quelqu'un utilisant JavaScript pour faire des attaques d'injection de cul bizarres. Cependant, il m'a laissé quelques questions sans réponse.
Première
Quand utilisez-vous Html.Encode? Comme l'utilisez-vous uniquement lorsque vous souhaitez afficher des informations que cet utilisateur ou un autre utilisateur a soumises?
Ou est-ce que je l'utilise pour tout. Comme dire que j'ai une forme qu'un utilisateur soumet, cette information ne sera jamais montrée à aucun des utilisateurs, devrais-je toujours employer html.encode?
Comment le ferais-je comme je ne sais pas comment mettre à l'intérieur say et Html.TextBox() la balise html.encode.
Deuxième
Qu'advient-il dire que j'ai sur mon site un riche éditeur HTML. L'utilisateur est autorisé à l'utiliser et rendre les choses en gras et autres. Maintenant, je veux afficher des informations à l'utilisateur via une étiquette. Je ne peux pas Html.Encode depuis lors, tout le gras et les choses ne seront pas rendues.
Pourtant, je ne peux pas le laisser comme c'est le cas depuis ce qui empêcherait un utilisateur d'ajouter une attaque Javascript?
Alors qu'est-ce que je ferais? Utilisez Regex pour filtrer tous les tags?
Troisième
Il y a aussi une autre balise, vous pouvez utiliser appelé « AntiforgeryToken » quand voulez-vous utiliser celui-ci?
Merci
Modifier
Presque tout le monde dit utiliser une « liste blanche » et « liste noire » comment pourrais-je écrire cette liste et la comparer aux valeurs entrantes (exemples en C# serait bien)?
Vous pouvez utiliser une liste blanche de tags au lieu d'une liste noire (comme le fait ce site). –
SO et ses frères et sœurs utilisent une liste blanche: http://meta.stackexchange.com/questions/1777/what-html-tags-are-allowed – NickFitz