javascript - 防止 CKEditor 中的 XSS

标签 javascript html security ckeditor

我想保护我的应用程序免受攻击,所以我想在我的 CKEditor 配置中禁用任何类型的执行,所以我找到了一个解决方案 allowContent: false这可以防止 <scripts> CKEditor 内的标签,但放入 <p><a href="javascript:(alert(document.domain))">XSS</a></p> 之后在CKEditor中,因此它执行href里面的js .

配置

config = {
   ...,
   allowContent: false
}

现在,在放置上述配置后,以下脚本不起作用:

<script>alert(1)</script>

我还想阻止 href 内的以下 js但目前,它正在执行

<p><a href="javascript:(alert(document.domain))">XSS</a></p>

最佳答案

您必须清理输入到 CKEditor 的数据。 CKEditor 选项的 config.htmlEmbed.sanitizeHtml 允许插入外部清理程序。

在我看来,目前最好的 sanitizer 是 DOMPurify图书馆。

以下是有关在 CKEditor 中包含 DOMPurify 的更多信息:more info .

在我看来,“自己”保护 CKEditor 是非常困难的,所以最好使用 sanitizer。该软件存在一些安全问题,这里描述了一个有趣的例子:CKEditor XSS

关于javascript - 防止 CKEditor 中的 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70681006/

相关文章:

javascript - KnockoutJS 中 foreach 的 3 层嵌套

html - jquery cookie代码错误

ios - 测试iOS应用程序的安全性

javascript - 在 CodeIgniter 中允许 URL 中的任何字符

javascript - 如何根据上下文预先选择 <option>?

macos - 如何在 Mac 上远程添加可信证书(无需用户交互)

javascript - 在 HTML 文件中引用 HTML 文件?

javascript - 替换加号、双引号和空格(双引号包围的空格除外)

javascript - jQuery (1.8.1/1.8.2)、Internet Explorer 8 : How to remove css attribute transparent?

javascript - 根据所选类别显示/隐藏特定项目/元素