用ckeditor预防xss

ago*_*gou 2 xss

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

我试过这个XSS:

<IMG """><SCRIPT>alert("XSS")</SCRIPT>">
Run Code Online (Sandbox Code Playgroud)

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

令我惊讶的是CKEditor向我展示了这个:

{cke_protected_1}">
Run Code Online (Sandbox Code Playgroud)

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

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

<a><img><table><span><pre>
(<a> and <table> could be disabled if it makes things easier)
Run Code Online (Sandbox Code Playgroud)

PS:CKEditor使用默认设置.

Wik*_*alc 6

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

请注意,wysiwyg编辑器必须保护编辑HTML中包含的JavaScript代码,以便不破坏编辑内容,其中包括隐藏在Wysiwyg模式<script>标记或将onclick事件处理程序更改为"data-"属性.

{cke_protected_1}是尝试通过CKEditor隐藏<script>标记的结果,由于从XSS Cheat Sheet中获取了一些"hackish"HTML,因此无法完全正常工作.

所见即所得的编辑器中的部分内置保护不应被视为服务器端防止XSS的替代.