存储HTML时避免XSS攻击

时间:2011-06-14 14:41:48

标签: javascript html xss

我的网站存储用户生成的HTML。然后,当然这些数据在网页上呈现。有关重新发布HTML和避免XSS攻击的最佳做法是什么?是否正在剥离<script><iframe>个标签?这会涵盖所有浏览器吗?我听说旧的浏览器从奇怪的编码中呈现HTML ...我该如何处理?

我想要一个通用答案,与任何语言或技术无关。

4 个答案:

答案 0 :(得分:3)

您可以使用Jsoup等库,尤其是whitelist-sanitizer来阻止XSS。

一般来说,我认为使用白名单是一种更好/更安全的方法,而不是过滤黑名单。此外,首先应避免使用HTML。相反,应该使用一些简单的标记,例如markdown

答案 1 :(得分:0)

我可以向你保证,没有办法安全地做你要求的事。一个狡猾的黑客将始终能够利用允许用户任意html的系统,即使通过剥离某些标签进行清理也是如此。这正是markdownBBcode等工具存在的原因。为什么看起来,甚至StackOverflow都使用类似的。

您正考虑沿着这条路走下去的路上有10,000个被利用的网站。

答案 2 :(得分:0)

当你的用户在你的页面上设置HTML时,你会迷失方向,有很多可能性,例如onmouseover“myEvilJS”或

答案 3 :(得分:-1)

最低必须转换此符号。
&安培; - &GT; &放大器;放大器;
&LT; - &GT; &安培; LT;
&GT; - &GT; &安培; GT;
“ - &gt; &安培; QUOT;
' - &gt; &安培;#X27;
/ - &gt; &安培;#X2F;