我正在尝试实现HttpUtility.HtmlEncode()。此方法将编码的字符串将用于呈现为html。如果它被编码,那么它将如何正确呈现?在使用它进行渲染之前,是否需要再次对其进行解码?在那种情况下,如果我们必须再次解码它以正确渲染它,那么编码点是什么?
答案 0 :(得分:2)
如果您有任意文本要确保它不包含HTML元素,则只应对其进行编码。 HtmlEncode
将使其呈现为文本,而不是HTML。
如果您不想这样做,请不要进行编码或解码。
例如,这个字符串由应用程序的可爱用户放在文本字段中(假设您的框架不会阻止XSS注入):
string s = "<script>alert('dangerous');</script>";
当它放在没有HtmlEncode
的页面上时,它会在浏览器对话框中显示警告(它会执行Javascript)。如果您在其上调用HtmlEncode
,它将呈现为文字。 Javascript没有被执行。
<script>alert('dangerous');</script>