2010-06-28 3 views
7

Avec .net 4, il y a un nouveau <%:%> boîtier de script qui ressemble à <% =%> mais qui code un code html. Les gens encouragent l'utilisation de cette nouvelle syntaxe.<%: %> vs Microsoft la bibliothèque anti XSS

Ma question est, est-ce que <%:%> protège mieux contre XSS ou utilise la bibliothèque Microsoft Anti XSS?

Une personne de sécurité Microsoft m'a dit une fois de ne jamais utiliser HTML Encode car il ne protège pas très bien et que je devrais toujours utiliser la bibliothèque Anti XSS (ou une autre bibliothèque). Est-ce encore vrai avec <%:%>? Ou puis-je utiliser en toute confiance <%:%> sachant qu'il va protéger mon application XSS comme les gens le disent?

Répondre

9

HttpUtility.HtmlEncode utilise une liste noire (principe des exclusions) approche à l'encodage, ce qui laisse potentiellement la porte entrouverte découvrir de nouveaux exploits dans le futur. Le Anti-XSS library (maintenant connu sous le nom de Web Protection Library et inclut également du code pour atténuer l'injection SQL) utilise une approche de liste blanche (principe d'inclusions) qui ferme la porte un peu plus loin et devrait offrir une meilleure sécurité.

<%: ... %> est juste un raccourci pour <%= Server.HtmlEncode(string) %> et fournit donc la sécurité de l'encodeur utilisé dans votre application.

Vous pouvez utiliser un encodeur que vous voulez avec la nouvelle syntaxe <%: ... %> et Phil Haack a un grand poste sur hooking up the Anti-Xss library as the default encoder. Gardez à l'esprit qu'actuellement la bibliothèque Anti-XSS 3.1 requiert une confiance moyenne pour s'exécuter - ceci est adressé pour une prochaine version.

+0

Je ne savais pas comment connecter <%: %> à un codeur différent. C'est plutôt cool. – dtc

1

La nouvelle syntaxe doit uniquement être utilisée pour échapper le contenu de texte brut en HTML. EDIT: et attributs.

Pour attributs, Javascript, et d'autres contextes, vous devriez toujours utiliser la bibliothèque Anti-XSS,

+0

La bibliothèque Anti-XSS fournit un codage plus sûr pour le codage HTML et attribut – orip

Questions connexes