为什么需要Server.HtmlEncode?

时间:2011-07-27 22:10:01

标签: asp.net

我无法理解为什么需要Server.HtmlEncode? MSDN声明它用于将可能不安全的字符编码为HTML编码的等效字符。

有人可以告诉我这些字符是如何不安全的,并要求我们使用Server.HtmlEncode吗?

感谢。

1 个答案:

答案 0 :(得分:10)

字符如何不安全的一个示例是用户是否在您的页面上提交评论。如果评论表单不使用HtmlEncode,那么用户刚输入的任何内容现在都将作为页面上的注释显示。在这种情况下,黑客可以提交如下评论:

<script language="javascript" type="text/javascript">
window.location = 'http://server.com/viruspage.asp';
</script>

对于加载页面的每个后续用户,脚本将运行(因为它尚未使用HtmlEncode编码),将每个用户重定向到有病毒的页面。这是一个非常简单的示例,但是还有许多其他方法可以输入恶意数据,甚至可能让黑客对您的数据库进行管理访问。