image - 我应该禁用图像的 Content-Security-Policy 标头吗?
问题描述
由于 Content-Security-Policy 标头主要用于防止XSS 攻击,我认为如果我对 .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 指令指定图像和网站图标的有效来源。
推荐阅读
- elixir - 如何在 Elixir 中获得二进制文件的长度?
- android - 如何在应用程序内获取 Firebase 云消息,而不是推送通知
- genexus - 单独工作面板
- powerbi - 拉取对应于最大值或最小值的行的最佳方法
- javascript - 注入 DOM 后如何使用 API 处理 Wistia 视频
- javascript - 猫鼬 findOneAndUpdate 为 err 和 doc 返回 null(使用 Jest)
- tfs - 如何查看我在 VSTS 项目中所做的更改?
- php - Laravel CSV 导入 - 我可以使用请求验证吗?
- intellij-idea - 使用 IntelliJ Idea 和 SonarLint 连接到 SonarQube 服务器时出现错误
- php - 一个while循环中有两个查询