内容安全策略:仅允许我的 S3 存储桶

Content Security Policy: allow only my S3 bucket

在我们的网站中,我们只需要来自我们来源的字体。这是政策:

Content-Security-Policy: font-src fonts.gstatic.com https://s3.amazonaws.com/mybucket/* https://*.mysite.com:*

通过引入“https://s3.amazonaws.com/mybucket/*”,我假设它允许我们存储桶中的字体。但是我在浏览器控制台中看到以下错误:

Refused to load the font 'https://s3.amazonaws.com/mybucket/fonts/fa-brands-400.woff2' because it violates the following Content Security Policy directive: "font-src fonts.gstatic.com https://s3.amazonaws.com/mybucket/* https://*.mysite.com:*".

谁能帮我在 CSP header 中添加我的存储桶名称作为字体源?谢谢!

内容安全策略不支持路径部分中的通配符 *,请参阅 match-paths spec
您可以使用 https://s3.amazonaws.com/mybucket/ 而不是 https://s3.amazonaws.com/mybucket/*,这意味着相同的 - 嵌套到 /mybucket/.

中的任何文件或任何子文件夹

顺便说一句,https://*.mysite.com:* 只允许从 mysite.com 的子域加载字体,而不是从 mysite.com 本身加载字体。
:* 表示任何端口号,但是 https: 默认使用 443 端口,所以您可以直接使用 https://*.mysite.com.