在ASP.NET 4中,我们可以使用新的<%: ... %>
运算符输出HTML编码的字符串。是否可以配置 ASP.NET 4 (在web.config中),以便<%= ... %>
运算符也可以HTML编码字符串?
答案 0 :(得分:3)
不,幸运的是。
如果您以这种方式配置,您的开发人员将养成使用<%= ... %>
而不是编码的习惯。
如果他们随后在另一个(正常)项目上工作,他们最终会忘记编码他们的输出。
ASP.Net Razor默认为HTML编码,因为它没有此问题 (没有可以切换到的Razor代码,默认情况下不会编码)
答案 1 :(得分:2)
就个人而言,我不喜欢这种新的<%:
语法。我宁愿使用<%= HttpUtility.HtmlEncode(
,因为它更明确。
除此之外,它给出了一种错误的安全感,因为它只进行HTML编码。例如,请查看此代码段:
function myJavaScriptFunction()
{
var message = '<%: Person.LastComment %>';
alert(message);
}
它不是保存,因为它没有使用正确的编码。以下是安全的:
function myJavaScriptFunction()
{
var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
alert(message);
}
更明确。