Html编码已经是Html编码的值

时间:2011-02-01 09:52:46

标签: asp.net html-encode

我们最近接管了一个.NET项目,在查看db之后,我们在一些列中有以下内容:

1)有些列的值如 " & etc etc

2)有些人拥有<script>个标签和其他非HTML编码标签

此数据显示在整个网站上。在点号1上尝试HtmlEncoding时,我们得到以下&quot; -> &amp;quot;

显然我们想要显示htmlencode,因为第2点包含我们不想执行的javascript。

有没有办法在可能已编码或未编码的值上使用HtmlEncoded?

2 个答案:

答案 0 :(得分:2)

  

有没有办法在可能已编码或未编码的值上使用HtmlEncoded?

没有。

我建议您编写一个快速脚本,通过数据库和取消编码已编码的数据。然后使用像Microsoft AntiXSS库(教程here)之类的东西来编码输出到网页之前的所有输出。请记住,存储未编码的数据 1 是很好的,当你将它回传给最终用户时会有危险。

某些控件已使用内置于.Net框架中的编码功能对输出进行编码 - 对XSS 无法防范 - 您只需要避免使用这些控件或者不对它们显示的数据进行编码。有一个与MS控件有关的FAQ问题,在页面底部编码您应阅读的第一个链接。此外,一些第三方控制供应商对其控件的输出进行编码,如果您对它们进行测试以确保它们仍然不易受XSS影响,您可以自己帮忙。

1 不要忘记采取措施防止 SQL注入了!

答案 1 :(得分:1)

在应用 HtmlEncode (“myText”)之前,请使用 HtmlDecode 方法输入文字。

这样你就可以解码你的字符串:

  

&安培; QUOT; &安培;放大器;等等&lt;脚本&GT;

  

“&amp; etc etc&lt; script&gt;

然后从头开始应用编码。