2010-08-04 20 views

Répondre

3

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)

2

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.

+0

+1 pour une foire un bon point, mais pas exactement une réponse à la question! –