【发布时间】:2017-10-19 15:07:31
【问题描述】:
我正在使用HtmlSanitizer 解析.NET Core 中的输入以防止XSS Injections。 HtmlSanitizer 实现 AngleSharp - 我不知道 Angle Sharp 是做什么的,但它会编码一些字符,如下所示:
输入:
&#33;@#$%^&*()_+{}:"<>?~
输出:
&#33;@#$%^&amp;*()_+{}:"&lt;&gt;?~
请注意,&lt;、&gt; 和 & 分别被编码为 &lt;、&gt; 和 &amp。我有两个问题:
- 这是什么编码?
- (可选)有没有办法使用 AngleSharp 或其他库来撤消它?
旁注 - 所有有害内容都会根据需要删除,这种格式更改无论如何都发生在“安全”html 上,只是为了指出我没有撤消库的任何安全功能,所以我们没有很长的时间对此进行讨论。
【问题讨论】:
-
如果您知道编码是什么,您可能会从发布的信息中知道。 @艾伦拉里默
-
HTML 编码/解码内置在 Asp.Net 中。请参阅this question 了解更多信息。
标签: encoding .net-core html-sanitizing