在 ASP.NET 4 中,我们可以使用 new<%: ... %>
运算符来输出 HTML 编码的字符串。是否可以配置ASP.NET 4(在 web.config 中)以便<%= ... %>
操作员也可以对字符串进行 HTML 编码?
问问题
705 次
2 回答
3
不,幸运的是。
如果您以这种方式配置它,您的开发人员将养成使用<%= ... %>
而不是编码的习惯。
如果他们随后从事不同的(正常)项目,他们最终会忘记编码他们的输出。
ASP.Net Razor确实默认为 HTML 编码,因为它没有这个问题。
(没有可以切换到默认不会编码的 Razor 代码)
于 2010-08-04T18:38:32.907 回答
2
就个人而言,我不喜欢这种新<%:
语法。我宁愿使用<%= HttpUtility.HtmlEncode(
,因为它更明确。
除此之外,它给人一种虚假的安全感,因为它只进行 HTML 编码。例如看这个片段:
function myJavaScriptFunction()
{
var message = '<%: Person.LastComment %>';
alert(message);
}
它没有保存,因为它没有使用正确的编码。以下是安全的:
function myJavaScriptFunction()
{
var message = '<%: AntiXss.JavaScriptEncode(Person.LastComment) %>';
alert(message);
}
更加明确。
于 2010-08-04T19:01:31.923 回答