2011-08-02 67 views
1

我使用TinyMCE的我的在线编辑器,但我担心的XSS攻击等。 我虽然更换所有<>,但是这似乎并不符合这样的一个选项编辑器,我不确定删除脚本标记是否足够(onclick,onmouseover和其他事件)。所见即所得和XSS

我该如何避免此类攻击?

回答

1

从理论上讲,你可以像这样消除XSS,但实际上很难。总会有一些你忽视的东西。

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

2

你必须选择,安全或方便。像TinyMCE这样的所见即所得编辑器非常方便。它允许非专家使用Web界面来更新一些带或不带html标签的内容。它是懒惰的方式,允许非技术人员更新html,并带有各种危害。 当您允许用户访问您的数据库的TinyMCE接口时,它绝对等于给他们一个数据库客户端来直接更新数据库中的数据。

也注意到,今天有跨站点脚本的很大,是不是恶意的,这其实是在脸谱,LinkedIn,YouTube上,等整合,需要第三方域等

脚本引用

因此,如果您强化TinyMCE工具,以便无法添加XSS,那么在许多情况下,对于认真的Web开发人员来说,这将毫无用处。

但是,如果您需要创建一个添加/编辑/更新/删除编辑器XSS证明,您需要验证和消毒所有输入,您的最佳选择是推出自己的。