php - 用PHP添加Content-Security-Policy,为什么资源没有加载?

标签 php content-security-policy

我将其添加到我的 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/

相关文章:

PHP:反序列化已序列化并插入到 Mysql 数据库中的数据并回显到 PHP 中的表

javascript - 尝试加载Firebase时与Electron发生内容安全冲突

javascript - Modernizr 导致内容安全策略 (CSP) 违规错误

nginx - 拒绝框架 '' 因为它违反了以下内容安全(空框架 URL)

html - iframe 中的内容安全策略会影响 Firefox 上的整个页面

php - 在多维数组 PHP/Codeigniter 中过滤可能性

php - 从 PHP MySQL 列中的所有行读取数据

php - 自动填写网络表单并返回结果页面

security - 当我有两个 CSP(内容安全策略)策略 - header 和元时会发生什么?

php - 如何获得全尺寸的缩略图?