【发布时间】:2012-08-18 01:15:43
【问题描述】:
我有一个 ASP.NET WebForms 应用程序。我正在根据我的数据库中的内容设置页面的标题。
因为此内容是由用户输入的,所以它可以包含任何字符,包括可以解释为 HTML 标记的字符。因此,我在设置标题之前对这个内容进行了 HTML 编码。
但我发现这会导致产生过度编码的结果:
<title>Hoigaard&#39;s Nordic Walking Tuesdays</title>
安全编码用于设置标题标签的文本的正确方法是什么?
【问题讨论】:
-
在设置
Page.Title之前,您是否首先验证了需要对值进行编码? -
好吧,在文本为
</title></head><body>...的极端情况下,我可以看到真正的问题出现了。我不认为不编码此内容是一种好的形式。 -
没有。我的意思是您是否确认
Page.Title没有已经对结果进行编码? -
天啊!查看问题文本,我实际上可以看到它 is 编码了两次。看起来就是这个问题。谢谢。