在 CKEditor 中防止 XSS

Prevent XSS in CKEditor

我想保护我的应用程序免受攻击,所以我想在我的 CKEditor 配置中禁用任何类型的执行,所以我找到了一个 allowContent: false 的解决方案,它可以防止 CKEditor 中的 <scripts> 标签但是在将 <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 允许插入外部消毒器。

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

这里是关于在 CKEditor 中包含 DOMPurify 的更多信息:more info

在我看来,“靠你自己”很难保护 CKEditor,所以最好使用消毒剂。该软件存在一些安全问题,此处描述了一个有趣的示例:CKEditor XSS