我使用TinyMCE作为我的在线编辑器,但我担心XSS攻击等。
我虽然替换了所有<
和>
,但这似乎不是这种编辑器的选项,我不确定删除脚本标签是否足够(onclick,onmouseover怎么样和其他事件)。
我应采取什么方法来避免此类攻击?
答案 0 :(得分:2)
您必须选择,安全或方便。像TinyMCE这样的WYSIWYG编辑器非常方便。它允许非专家使用Web界面更新某些带有或不带有html标签的内容。它是允许非技术人员更新html的懒惰方式,它带来各种危险。 当您授予用户访问数据库TinyMCE接口的权限时,绝对等同于为他们提供数据库客户端以直接在数据库中更新数据。
另外,请注意,今天有很多跨站点脚本不是恶意的,实际上是facebook,linkedin,youtube等集成,需要脚本引用第三方域等。
因此,如果您强化TinyMCE工具以便无法添加XSS,那么在许多情况下对于严肃的Web开发人员来说都是无用的。
但是如果您需要创建一个添加/编辑/更新/删除编辑器XSS证明,您需要验证并清理所有输入,您最好的选择就是自己动手。
答案 1 :(得分:1)
理论上你可以像这样消除XSS,但实际上很难。似乎总有一些你忽略了。
我发现的最好方法是使用正则表达式,只允许使用您指定的某些标记(<strong>, <em> etc
)并删除所有其他标记。您还需要查找用户编码字符来规避保护的尝试。