我得到了这个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:absence(。它是否自动意味着它超过了安全HTTPs(如果当前页面/源是(?它会受到MiTM攻击吗?我认为文件对我来说不清楚(谷歌的CSP评估员说"好"(
这是否自动意味着它是过度安全的HTTPs(如果当前页面/源是(?
是的,无架构主机源意味着浏览器将遵循同源策略来恢复实际方案
因此,如果页面是通过HTTPS加载的,则CSP中的所有无架构主机源都会获得https://
方案
在HTTP页面上,CSP中的所有无方案主机源都获得了http://
方案,所有细节都在这里。
它会受到MiTM攻击吗?
它只有在HTTP页面上才易受攻击。任何HTTP页面都容易受到MiTM的攻击,许多俄罗斯ISP仍然使用MiTM on HTTP将其广告注入客户访问的页面。
你为什么不担心'self'
的使用?'self'
表示在HTTP页面上的http://example.com
,在HTTPS页面上表示https://example.com
。因此,它与无架构的fonts.googleapis.com
使用一样容易受到攻击。
BTW为什么在2021年从谷歌CDN加载字体?这减慢了网站的速度:1,2并且不被浏览器缓存。使用https://google-webfonts-helper.herokuapp.com/fonts提取字体并将其存储在本地,然后使用CCD_ 8预加载。