我的情况有点不同,我使用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使用默认设置。
您应该在服务器端防范XSS。如果你有这种可能性,只需在保存之前剥离任何不安全的数据。
请注意,wysiwyg编辑器必须以某种方式保护已编辑HTML中包含的JavaScript代码,以避免破坏已编辑的内容,这包括例如隐藏在wysiwyg模式下的<script>
标记或将onclick
事件处理程序更改为"数据-"属性。
{cke_prected_1}是试图隐藏<script>标记,由于从XSS Cheat Sheet中提取了一个有点"黑客"的HTML,该标记没有完全正常工作。
wysiwyg编辑器中的部分内置保护不应被视为针对XSS的服务器端保护的替代品。