2009-10-01 14 views
1

J'ai remarqué dans l'article this que Microsoft ne recommande pas d'utiliser le contrôle Editeur d'Ajax Control Toolkit dans les sites publics en raison du danger d'attaques par script intersite. Je l'ai essayé, et même si vous avez spécifiquement défini NoScript = "true", il est possible d'ajouter un script, et donc d'introduire des vulnérabilités d'attaque XSS. Dans ma situation, nous travaillons sur un processus de demande de bourse, et nous avions espéré utiliser cela à tous les candidats pour taper un essai en ligne. Nous voulions prendre les données et les afficher de nouveau au comité de révision, mais évidemment, c'est une mauvaise idée. Donc, je me demande si quelqu'un connaît une façon simple de valider le contenu pour permettre le HTML, mais pas le script, peut-être en utilisant un CustomValidator ou une expression régulière que je peux utiliser dans le code-behind. Je suis conscient qu'il est préférable de valider la liste blanche et non la validation de la liste noire. Alternativement, si quelqu'un est conscient d'un contrôle similaire qui protège contre les attaques XSS, ce serait également bien.Ajax Control Toolkit Éditeur contrôle - éviter les attaques XSS

Répondre

4

La dernière version de la bibliothèque AntiXSS fait maintenant de la désinfection HTML qui, je pense, fera ce que vous voulez. Jetez un oeil au blog de Blowdart dessus here.

MISE A JOUR 15 septembre 2015:
Le AntiXSS se est roulé dans le .Net 4.0 Framework, activez-le dans votre fichier .config.

+0

Merci! Je regarde en ce moment. – David

+0

Man c'est dommage que vous ne pouvez pas voter quelqu'un plus d'une fois. C'est génial .. Je ne peux pas croire que je n'ai jamais regardé cela avant. Je me suis toujours contenté d'utiliser la validation pour désinfecter mon entrée et d'utiliser HtmlEncode le cas échéant, mais c'est encore mieux. De meilleures performances, plus la nouvelle fonction GetSafeHtmlFragment() fonctionne dans ce scénario! Merci encore! – David

+0

Pas que je ne vais pas désinfecter l'entrée et prendre toutes les précautions. C'est juste un outil supplémentaire agréable à avoir. – David