asp.net - HTML.Encode() - 它是什么/如何防止 ASP .NET 中的脚本安全问题?

标签 asp.net security

当我处理用户输入,特别是脚本问题时,HTML.Encode() 为我提供了什么安全保护?

最佳答案

请查看 Server.HTMLEncode :

The HTMLEncode method applies HTML encoding to a specified string. This is useful as a quick method of encoding form data and other client request data before using it in your Web application. Encoding data converts potentially unsafe characters to their HTML-encoded equivalent.

If the string to be encoded is not DBCS, HTMLEncode converts characters as follows:

  • The less-than character (<) is converted to &lt;.
  • The greater-than character (>) is converted to &gt;.
  • The ampersand character (&) is converted to &amp;.
  • The double-quote character (") is converted to &quot;.
  • Any ASCII code character whose code is greater-than or equal to 0x80 is converted to &#<number>, where is the ASCII character value.


这意味着,如果您要将一些数据转储到请求流,并且该数据是从用户输入的字段保存到数据库中的,则会阻止用户说出他们的名字是:
<script type="text/javascript">
    function doSomethingEvil() { /* ... */ }
</script>

在本例中,Server.HTMLEncode将编码 < , > , 和 "离开这个的字符:
&lt;script type=&quot;text/javascript&quot;&gt;
    function doSomethingEvil() { /* ... */ }
&lt;/script&gt;

如果在浏览器中呈现,它将如下所示:

<script type="text/javascript"> function doSomethingEvil() { /* ... */ } </script>



而不是实际执行。

关于asp.net - HTML.Encode() - 它是什么/如何防止 ASP .NET 中的脚本安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014593/

相关文章:

php - PHP 中加密安全且唯一的字符串

asp.net - SQL 查询未按预期工作

javascript - 以编程方式显示基于 IP 国家/地区的 Div

Jquery Autocomplete JSON字符串解析错误

security - 你在输入或输出过程中使用 HtmlEncode 吗?

python - 如何在 jinja2 中对危险的未经处理的输入进行 html 转义?

java - 为什么这个看似等效的 SecurityManager 代码会导致虚假异常?

security - 证书和哈希检查?

c# - 如何控制何时更新远程 iCal (.ics) 文件以及同步日历?

c# - 如何根据数据行计数从代码后面将css类添加到 'hyperlink'内部的 'Repeater control'