2009-06-16 7 views
15

J'ai lu sur Anti-XSS Security Runtime Engine et il ressemble à une bonne solution pour les formulaires Web car il inspecte les contrôles via la réflexion et encode automatiquement les données le cas échéant. Cependant, comme je n'utilise pas vraiment les contrôles côté serveur dans ASP.NET MVC, cela ne semble pas être une solution viable pour ASP.NET MVC. Est-ce correct ou ai-je oublié quelque chose?Dois-je utiliser le moteur d'exécution de sécurité Anti-XSS dans ASP.NET MVC?

+1

Question intéressante - nous avons eu quelques consultants en sécurité délirer à ce sujet l'autre jour au travail. Je serais intéressé à trouver l'adoption des gens. – RichardOD

Répondre

3

Phil Haack a un blog intéressant ici http://haacked.com/archive/2009/02/07/take-charge-of-your-security.aspx. Il suggère d'utiliser Anti-XSS combiné avec CAT.NET.

+0

La lecture de cet article réaffirme à peu près ma compréhension du manque de contrôles côté serveur dans ASP.NET MVC. "Avec MVC, nous avons échangé les contrôles serveur avec nos méthodes auxiliaires, qui encodent correctement la sortie" – Blegger

+2

[Updated link] (http://haacked.com/archive/2009/02/07/take-charge-of-your- security.aspx) à l'entrée de blog de Haack. – patridge

8

Le moteur d'exécution de sécurité Anti-XSS est un module HTTP principalement conçu pour la mise à jour des applications ASP.NET héritées. Si vous avez déjà écrit l'application ASP.NET MVC avec un nettoyage correct des données avec les Helpers HTML intégrés (ie Html.Encode()), le moteur Anti-XSS n'ajoute rien de nouveau et nécessite une configuration supplémentaire (pour les blancs nécessaires). listes) et la vérification des erreurs. Dans l'ensemble, vous ne devriez pas compter sur le moteur Anti-XSS, surtout si vous comptez sur le contrôle explicite lorsque l'entrée est et n'est pas rendue au format HTML.

+5

Type de - Je possède AntiXss et le SRE et bien qu'ils fassent partie du même projet, ils ne sont pas la même chose. Le codage d'AntiXSS diffère des encodeurs .NET en ce sens que nous utilisons des listes sûres, plutôt que des listes non sûres pour décider quels caractères doivent être transformés en leurs équivalents hexadécimaux et lesquels ne le sont pas. Cela a un coût de performance, mais est intrinsèquement plus sûr. Il y a donc un avantage à utiliser ces routines d'encodage. L'environnement d'exécution de sécurité est une bête différente, c'est un simple pare-feu d'application qui recherche les attaques les plus courantes. Certaines parties sont spécifiques aux formulaires Web, les parties fonctionnent avec les deux formulaires Web et MVC. – blowdart