在ASP.NET 4中默认情况下是否可以打开HTML编码?

时间:2010-08-04 18:34:28

标签: asp.net .net-4.0 asp.net-4.0 html-encode

在ASP.NET 4中,我们可以使用新的<%: ... %>运算符输出HTML编码的字符串。是否可以配置 ASP.NET 4 (在web.config中),以便<%= ... %>运算符也可以HTML编码字符串?

2 个答案:

答案 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);
}

更明确。