1

我正在使用富文本编辑器 - 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 攻击?

4

1 回答 1

1

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

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

于 2013-11-18T07:16:28.977 回答