我将其添加到我的 php 文件的 header 顶部:
header("Content-Security-Policy: default-src 'self' https://apis.google.com https://www.googletagmanager.com https://fonts.googleapis.com https://use.fontawesome.com https://connect.facebook.net https://www.facebook.com");
我想允许来自所有这些网站的脚本。我尝试将每个网址替换为 *,例如将 https://apis.google.com
替换为 *.google.com
,但结果是相同的。
我还尝试使用 script-src
而不是 default-src
。
我认为这是为了允许来自某些网站的所有内容,但不会加载该指令中包含的资源。例如,谷歌字体。它们就是无法加载,我看到的是系统字体,而不是 Google 字体。
我做错了什么?
检查控制台时出现此错误:
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”).
最佳答案
您已允许'self',它允许从同一源的其他 URL 加载脚本。这是最有可能完全安全的来源,因为它不涉及第三方。
'self' 不包含内联脚本(需要'unsafe-inline' 或'unsafe-hashes' 选项) .
内联脚本是允许的最危险的,因为它们是最有可能由 XSS 攻击创建的脚本类型。
进一步阅读:MDN
关于php - 用PHP添加Content-Security-Policy,为什么资源没有加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67400067/