我应该采取哪些预防措施来防止用户提交的 HTML 出现 XSS?

2024-03-16

我计划制作一个网络应用程序,允许用户在我的网站上发布整个网页。我正在考虑使用HTML 净化器 http://htmlpurifier.org/但我不确定,因为 HTML Purifier 会编辑 HTLM,并且 HTML 的发布方式保持不变非常重要。所以我正在考虑制作一些正则表达式来摆脱所有脚本标签和所有 javascript 属性,如 onload、onclick 等。

我不久前看到一个谷歌视频,其中有解决这个问题的方法。他们的解决方案是使用另一个网站发布javascript,这样原始网站就无法访问。但我不想为此购买新域名。


对于这种事情要小心自制正则表达式

正则表达式就像

s/(<.*?)onClick=['"].*?['"](.*?>)/$1 $3/

看起来它可能会摆脱 onclick 事件,但你可以通过以下方式绕过它

<a onClick<a onClick="malicious()">="malicious()">

运行正则表达式将会得到类似的东西

<a onClick ="malicious()">

您可以通过在该字符串上重复运行正则表达式直到它不匹配来修复它,但这只是绕过简单正则表达式清理程序是多么容易的一个示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该采取哪些预防措施来防止用户提交的 HTML 出现 XSS? 的相关文章

随机推荐