httputility.htmlencode()如何工作?

时间:2017-03-30 07:32:09

标签: c# html

我正在尝试实现HttpUtility.HtmlEncode()。此方法将编码的字符串将用于呈现为html。如果它被编码,那么它将如何正确呈现?在使用它进行渲染之前,是否需要再次对其进行解码?在那种情况下,如果我们必须再次解码它以正确渲染它,那么编码点是什么?

1 个答案:

答案 0 :(得分:2)

如果您有任意文本要确保它不包含HTML元素,则只应对其进行编码。 HtmlEncode将使其呈现为文本,而不是HTML。

如果您不想这样做,请不要进行编码或解码。

例如,这个字符串由应用程序的可爱用户放在文本字段中(假设您的框架不会阻止XSS注入):

string s = "<script>alert('dangerous');</script>";

当它放在没有HtmlEncode的页面上时,它会在浏览器对话框中显示警告(它会执行Javascript)。如果您在其上调用HtmlEncode,它将呈现为文字。 Javascript没有被执行。

<script>alert('dangerous');</script>