Dans ASP.NET 4, nous pouvons utiliser le nouvel opérateur <%: ... %>
pour générer des chaînes codées HTML. Est-il possible de configurer ASP.NET 4 (dans le fichier web.config) de sorte que l'opérateur <%= ... %>
code HTML aussi les chaînes?Est-il possible d'activer le codage HTML par défaut dans ASP.NET 4?
Répondre
Non, heureusement.
Si vous le configurez de cette façon, vos développeurs prendront l'habitude d'utiliser <%= ... %>
et non de codage.
S'ils travaillent par la suite sur un projet différent (normal), ils finiront par oublier d'encoder leur sortie.
ASP.Net Razor par défaut pour le codage HTML, car il n'a pas ce problème.
(Il n'y a pas de code de rasoir, vous pouvez passer à qui n'encoder par défaut)
Personnellement, je n'aime pas cette nouvelle syntaxe <%:
. Je préfère utiliser <%= HttpUtility.HtmlEncode(
car c'est beaucoup plus explicite. En outre, cela donne un faux sentiment de sécurité, car il ne fait que coder en HTML. Regardez cet extrait par exemple:
function myJavaScriptFunction()
{
var message = '<%: Person.LastComment %>';
alert(message);
}
Il est sauve pas, car il n'utilise pas le codage correct. Ce qui suit est sûr:
function myJavaScriptFunction()
{
var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
alert(message);
}
Beaucoup plus explicite.
+1 pour une foire un bon point, mais pas exactement une réponse à la question! –