用ckeditor预防xss

时间:2012-08-22 01:16:04

标签: xss

我的情况有点不同,我正在使用CKEditor进行编辑和显示,并且提交的字符串只会显示在CKEditor内,而不是其他地方。

我试过这个XSS:

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">

我直接从后端向数据库添加了这个,而不是CKEditor,因为我知道在进入数据库之前CKEditor的作用并不重要,因为攻击者总是可以在不处理CKEditor的情况下发送一些原始的http请求。

令我惊讶的是,CKEditor向我展示了这一点:

{cke_protected_1}">

所以CKEditor正在做一些事情来阻止XSS,我意识到XSS安全性可以从客户端实现。

我的问题是,CKEditor做得有多好,如果我只使用无属性标签,那么它是否可靠

<a><img><table><span><pre>
(<a> and <table> could be disabled if it makes things easier)

PS:CKEditor正在使用默认设置。

1 个答案:

答案 0 :(得分:5)

您应该在服务器端防止XSS。如果您有这种可能性,只需在保存之前删除任何不安全的数据。

请注意,所见即所得编辑必须以某种方式保护编辑后的HTML中包含的JavaScript代码,以免破坏编辑后的内容,其中包括:隐藏在Wysiwyg模式<script>标记或将onclick事件处理程序更改为“data-”属性。

{cke_protected_1}是尝试隐藏&lt; script&gt;的结果。由CKEditor标记,由于从XSS Cheat Sheet中获取了一些“hackish”HTML,因此无法完全正常工作。

不应将wysiwyg编辑器中的部分内置保护视为服务器端XSS保护的替代。