首页 > 解决方案 > 我应该禁用图像的 Content-Security-Policy 标头吗?

问题描述

由于 Content-Security-Policy 标头主要用于防止XSS 攻击,我认为如果我对 .png、.jpg、.ico 和 .webp 文件禁用它并不重要。因为它们通常不包含 HTML。

但我注意到的是:

当我不禁用图像文件上的 CSP 标头时,它不允许浏览器在直接访问它时为图像文件提供 HTML 布局,例如,我的意思是:当您访问 example.com/image.jpg 时,在 chrome 中,图像后面有黑色背景,并且位于屏幕中央。但是,当我打开 CSP 时,例如 chrome 在用户访问图像时为图像提供的每种样式都是无效的,因为 CSP 会阻止它。

现在,我的问题是:

我应该禁用图像文件的 CSP 标头吗?我没有看到为图像文件禁用它有任何明显的缺点,但我只是想在这样做之前确定一下。

标签: imagehttp-headerscontent-security-policy

解决方案


CSP 很好。来自 MDN:

https://developers.google.com/web/fundamentals/security/

CSP 不是盲目地信任服务器提供的所有内容,而是定义了 Content-Security-Policy HTTP 标头,它允许您创建受信任内容源的允许列表,并指示浏览器仅执行或呈现来自这些源的资源。

如果您完全使用 CSP,那么您应该全面使用它们。是的,图像文件可能“不那么容易受到攻击”。但它们仍然可以成为“攻击向量”。例如:https ://hackerone.com/reports/964550

您可能希望使用 img-src,而不是“禁用 CSP”:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src

HTTP Content-Security-Policy img-src 指令指定图像和网站图标的有效来源。


推荐阅读