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

内容安全策略缺少主机/域的协议/方案,是否安全?

如何解决内容安全策略缺少主机/域的协议/方案,是否安全?

我得到了这个 CSP:

Content-Security-Policy: default-src 'none'; script-src 'self' 'unsafe-eval' 'unsafe-inline'; connect-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline' fonts.googleapis.com; frame-src 'self'; font-src data: fonts.gstatic.com 'self'; frame-ancestors 'self';

例如,fonts.googleapis.com 没有方案或协议(https:不存在)。它是否自动意味着它通过安全的 HTTPS(如果当前页面/源是)?它是否容易受到 MiTM 攻击?我认为文档对我来说不清楚(Google 的 CSP 评估员说“好”)

解决方法

这是否自动意味着它通过安全的 HTTPS(如果当前页面/源是)?

是的,schemeless host-source 意味着浏览器将遵循同源策略来恢复实际方案。
因此,如果页面通过 HTTPS 加载 - CSP 中的所有无方案主机源都获得 https:// 方案。
在 HTTP 页面上,CSP 中的所有无方案主机源都获得 http:// 方案,所有细节都是 here

它是否容易受到 MiTM 攻击?

它只会在 HTTP 页面上容易受到攻击。任何 HTTP 页面都容易受到 MiTM 的攻击,许多俄罗斯 ISP still injects their Ads 在 HTTP 上使用 MiTM 进入客户访问的页面。

您为什么不担心 'self' 的使用? 'self' 在 HTTP 页面上表示 http://example.com,在 HTTPS 页面上表示 https://example.com。因此,它与无计划的 fonts.googleapis.com 用法一样容易受到攻击。

BTW 为什么要在 2021 年从 Google 的 CDN 加载字体?这会降低网站速度:12 并且不会被浏览器缓存。使用 https://google-webfonts-helper.herokuapp.com/fonts 提取字体并将其存储在本地,然后使用 <link rel="preload" as="font" ... 预加载。

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