通过富文本编辑器发布图像可能容易受到 XSS 攻击



我正在使用富文本编辑器 - CKEditor允许用户输入呈现HTML/CSS的格式化文本。

为了防止不受信任的用户进行XSS攻击,我正在使用Jsoup Java库,该库过滤/删除用户输入的必要标签和/或属性,例如锚标签,

<a href='http://example.com/' onclick='executeMaliciousTask();'>Click Here</a>

变成了

<a href="http://example.com/" rel="nofollow">Click Here</a>

Jsoup生成的链接似乎可以安全地抵御XSS攻击。


我需要允许用户通过编辑器输入图像。为此,我使用以下 Jsoup 方法。

org.jsoup.Jsoup.clean(editorContents, org.jsoup.safety.Whitelist.basicWithImages();

允许用户以这种方式发布图像是否容易受到XSS攻击?

风险不在于生成的干净 HTML,而在于提供图像的服务器。我主要关心的是CSRF。但可能还有其他问题(例如恶意图像导致缓冲区溢出,或更改响应内容类型并欺骗浏览器执行脚本,或设置跟踪 cookie 等)。

我的建议是不允许远程托管图像。允许用户包含 img,但获取图像,验证/规范化它,并从您自己的主机提供它。

最新更新