Exa*_*son 5 image http-headers content-security-policy
由于 Content-Security-Policy 标头主要用于防止XSS 攻击,因此我认为如果对 .png、.jpg、.ico 和 .webp 文件禁用它也没关系。因为它们一般不包含 HTML。
当我不禁用图像文件上的 CSP 标头时,它会禁止浏览器在直接访问图像文件时提供该图像文件的 HTML 布局,例如,我的意思是:当您在 chrome 中访问 example.com/image.jpg 时,图像后面有黑色背景,并且位于屏幕中央。但是,当我打开 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指令的图像和视频,这可以防止这些文件嵌入信息<iframe> <object>标签,但不能嵌入<img>/<video>标签。
CSP 应该仅针对 HTML/XSLT 文件发布,对于其他 MIME 类型它不起作用。
注意:要为工作人员指定内容安全策略,您需要使用工作人员 JS 文件发布 CSP 标头。
此 XSS 通过图像示例 abt。
不要徒劳担心。
accounts.shopify.com服务器在上传文件时没有检查 MIME 类型。由于图像已加载并标记为 text/html,因此服务器将其作为 HTML 发送到浏览器。<img>,只需插入“中毒”图像并查看即可。img-src指令不能防止此类事情发生。无论如何,此类图像将属于'self'象征性津贴。不要使用'unsafe-inline'仅script-src此而已。