我的情况有点不同,我正在使用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使用默认设置.
您应该防止服务器端的XSS.如果您有这种可能性,只需在保存之前删除任何不安全的数据.
请注意,wysiwyg编辑器必须保护编辑HTML中包含的JavaScript代码,以便不破坏编辑内容,其中包括隐藏在Wysiwyg模式<script>标记或将onclick事件处理程序更改为"data-"属性.
{cke_protected_1}是尝试通过CKEditor隐藏<script>标记的结果,由于从XSS Cheat Sheet中获取了一些"hackish"HTML,因此无法完全正常工作.
所见即所得的编辑器中的部分内置保护不应被视为服务器端防止XSS的替代.
| 归档时间: |
|
| 查看次数: |
7312 次 |
| 最近记录: |