为我们的网站建立了一个聊天程序。该程序的一部分确实允许网页评论区用于讨论该页面。
所以有一个文本输入,所以文本被输入并重新显示在页面上。
显然,这是有潜在风险的。
因此,为了使文本字符串输入安全地重新显示在网页上,我可以只禁止<
和>
字符及其编码的 xml 和十六进制等效项吗?
如果没有脚本标签,是否有任何其他潜在的攻击向量可以嵌入到文本字符串中?
为我们的网站建立了一个聊天程序。该程序的一部分确实允许网页评论区用于讨论该页面。
所以有一个文本输入,所以文本被输入并重新显示在页面上。
显然,这是有潜在风险的。
因此,为了使文本字符串输入安全地重新显示在网页上,我可以只禁止<
和>
字符及其编码的 xml 和十六进制等效项吗?
如果没有脚本标签,是否有任何其他潜在的攻击向量可以嵌入到文本字符串中?
您实际上不需要禁止这些字符,您可以将它们转义(例如>
变成>
; 等等)。这将安全地将所有 HTML 转换为可读文本。请记住,您不仅可以执行脚本标签<span onmouseOver="javascript here">
,还可以加载可能利用浏览器弱点的图像,您可以添加显示恶意内容的 iframe 等等。所以 HTML 转义整个字符串可能是最安全的选择。
OWASP 项目有一些 C# 库,您可以将它们用于您的目的。https://www.owasp.org/index.php/.NET_AntiXSS_Library