WYSIWYG和XSS

时间:2011-08-02 09:09:25

标签: xss sql-injection wysiwyg

我使用TinyMCE作为我的在线编辑器,但我担心XSS攻击等。 我虽然替换了所有<>,但这似乎不是这种编辑器的选项,我不确定删除脚本标签是否足够(onclick,onmouseover怎么样和其他事件)。

我应采取什么方法来避免此类攻击?

2 个答案:

答案 0 :(得分:2)

您必须选择,安全或方便。像TinyMCE这样的WYSIWYG编辑器非常方便。它允许非专家使用Web界面更新某些带有或不带有html标签的内容。它是允许非技术人员更新html的懒惰方式,它带来各种危险。 当您授予用户访问数据库TinyMCE接口的权限时,绝对等同于为他们提供数据库客户端以直接在数据库中更新数据。

另外,请注意,今天有很多跨站点脚本不是恶意的,实际上是facebook,linkedin,youtube等集成,需要脚本引用第三方域等。

因此,如果您强化TinyMCE工具以便无法添加XSS,那么在许多情况下对于严肃的Web开发人员来说都是无用的。

但是如果您需要创建一个添加/编辑/更新/删除编辑器XSS证明,您需要验证并清理所有输入,您最好的选择就是自己动手。

答案 1 :(得分:1)

理论上你可以像这样消除XSS,但实际上很难。似乎总有一些你忽略了。

我发现的最好方法是使用正则表达式,只允许使用您指定的某些标记(<strong>, <em> etc)并删除所有其他标记。您还需要查找用户编码字符来规避保护的尝试。