微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我应该禁用图像的 Content-Security-Policy 标头吗?

如何解决我应该禁用图像的 Content-Security-Policy 标头吗?

由于 Content-Security-Policy 标头主要用于防止 XSS attacks,因此我认为对于 .png、.jpg、.ico 和 .webp 文件禁用它也没有关系。因为它们通常不包含 HTML。

但我注意到的是:

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

现在,我的问题是:

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

解决方法

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 指令指定有效 图片和网站图标的来源。

,

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

是的,您应该禁用图像文件的 CSP 标头,它在与 png/jpg/ico 等...文件一起交付时不起作用。
您唯一可以使用 frame-ancestors 指令传送图像和视频,这可以防止这些文件成为 embedded info <iframe> <object> 标签,但不会成为 <img> / <video> 标签。

CSP 应该仅针对 HTML/XSLT 文件发布,对于其他 MIME 类型它不起作用。
注意:要为工作人员指定内容安全策略,您需要publish CSP header with worker JS-file

This XSS via images 示例 abt.

不要白费心思。

  1. 这个 XSS 不是通过图像文件,实际上图像中的 COMMENTS 被视为 HTML,因为 accounts.shopify.com 服务器在上传文件时没有检查 MIME 类型。因此,图像被加载并标记为 text/html,因此服务器将其作为 HTML 发送到浏览器。
  2. 此类图像无法在 <img> 标签内工作,只需插入“中毒”图像并查看。
  3. img-src 指令不能防止此类情况发生。无论如何,此类图像都属于 'self' 令牌限额。不要在 'unsafe-inline' 中使用 script-src,仅此而已。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。