我使用TinyMCE作为我的在线编辑器,但我担心XSS攻击等问题。我想要替换所有的<和>,但这似乎不是这种编辑器的选项,我也不确定删除脚本标记是否足够( onclick,onmouseover和其他事件)。
我应该采取什么方法来避免这种攻击?
发布于 2012-12-11 06:33:55
你必须做出选择,安全还是方便。像TinyMCE这样的所见即所得编辑器非常方便。它允许非专家使用web界面来更新一些带有或不带有html标签的内容。这是一种懒惰的方式,允许非技术人员更新html,而且它伴随着各种各样的危险。当您为用户提供访问数据库的TinyMCE接口时,这完全等同于为他们提供一个数据库客户端来直接更新数据库中的数据。
ALso,请注意,今天有大量的跨站点脚本并不是恶意的,实际上是facebook,linkedin,youtube等的集成,需要脚本引用第三方域名等。
因此,如果您强化了TinyMCE工具,使其不能被添加,那么对于一个严肃的web开发人员来说,它在许多情况下都是无用的。
但是,如果您需要创建一个添加/编辑/更新/删除编辑器XSS校样,您需要验证和清理所有输入,您最好的选择是滚动您自己的。
发布于 2011-08-02 19:33:13
从理论上讲,您可以像这样消除XSS,但在实践中很困难。似乎总有一些你忽略了的东西。
我找到的最好的方法是使用正则表达式,只允许使用您指定的某些标记( <strong>, <em> etc),并删除所有其他标记。您还需要查找用户通过编码字符来规避您的保护的尝试。
https://stackoverflow.com/questions/6909674
复制相似问题