我的网站存储用户生成的HTML。然后,当然这些数据在网页上呈现。有关重新发布HTML和避免XSS攻击的最佳做法是什么?是否正在剥离<script>
和<iframe>
个标签?这会涵盖所有浏览器吗?我听说旧的浏览器从奇怪的编码中呈现HTML ...我该如何处理?
我想要一个通用答案,与任何语言或技术无关。
答案 0 :(得分:3)
您可以使用Jsoup等库,尤其是whitelist-sanitizer来阻止XSS。
一般来说,我认为使用白名单是一种更好/更安全的方法,而不是过滤黑名单。此外,首先应避免使用HTML。相反,应该使用一些简单的标记,例如markdown。
答案 1 :(得分:0)
我可以向你保证,没有办法安全地做你要求的事。一个狡猾的黑客将始终能够利用允许用户任意html的系统,即使通过剥离某些标签进行清理也是如此。这正是markdown和BBcode等工具存在的原因。为什么看起来,甚至StackOverflow都使用类似的。
您正考虑沿着这条路走下去的路上有10,000个被利用的网站。
答案 2 :(得分:0)
当你的用户在你的页面上设置HTML时,你会迷失方向,有很多可能性,例如onmouseover“myEvilJS”或
答案 3 :(得分:-1)
最低必须转换此符号。
&安培; - &GT; &放大器;放大器;
&LT; - &GT; &安培; LT;
&GT; - &GT; &安培; GT;
“ - &gt; &安培; QUOT;
' - &gt; &安培;#X27;
/ - &gt; &安培;#X2F;