代码之家  ›  专栏  ›  技术社区  ›  Tiffany

无法识别内容安全策略报告uri

  •  3
  • Tiffany  · 技术社区  · 9 年前

    我正在以仅报告模式设置内容安全策略。当我测试它时,Google Chrome给出了这个错误:

    https://js.hs-analytics.net https://google-analytics.com https://ajax.googleapis.com ; 字体src https://use。类型套件。通用域名格式;样式src“self”“unsafe inline”https://use。类型套件。通用域名格式;框架src https://www.youtube。com;' 请添加“report uri”指令,或通过“Content Security policy”标头传递策略。

    这是我的完整内容安全策略,我在网站的头PHP文件中定义了HTTP头:

    header("Content-Security-Policy-Report-Only: default-src 'self'; 
            script-src 'self' 'unsafe-inline' https://use.typekit.com https://js.hs-analytics.net https://google-analytics.com https://ajax.googleapis.com;
            font-src https://use.typekit.com;
            style-src 'self' 'unsafe-inline' https://use.typekit.com;
            frame-src https://www.youtube.com;
            report-uri /csp-violations-report-endpoint;
    ");
    

    我不确定我做错了什么。我读过 MDN's suggestions for report-uri 并已使用 Google's example

    我应该试着指向 report-uri

    编辑:我的web浏览器可能忽略了 report-to 指令,这就是为什么它不起作用,但错误消息让我相信情况并非如此。

    1 回复  |  直到 9 年前
        1
  •  4
  •   Dereleased    9 年前

    我可能完全不正确,但是,如果您完全按照上面的图使用代码,那么您很可能发送了一堆无效的头。HTTP头必须存在于一行中,而您的头则不存在。试试这个:

    header(
        "Content-Security-Policy-Report-Only: default-src 'self'; " .
        "script-src 'self' 'unsafe-inline' https://use.typekit.com https://js.hs-analytics.net https://google-analytics.com https://ajax.googleapis.com; " .
        "font-src https://use.typekit.com; " .
        "style-src 'self' 'unsafe-inline' https://use.typekit.com; " .
        "frame-src https://www.youtube.com; " .
        "report-uri /csp-violations-report-endpoint; "
    );