CSP、RocketLoader和Nginx? [英] CSP, RocketLoader and Nginx?

查看:0
本文介绍了CSP、RocketLoader和Nginx?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我试图避免使用(另一个)页面规则来禁用我的一个子域的RocketLoader,因为我们不能使用RegEx在一个页面规则下选择多个特定的子域,并且只能为免费帐户获得3个页面规则。

根据此页面:

https://support.cloudflare.com/hc/en-us/articles/216537517-Using-Content-Security-Policy-CSP-with-Cloudflare

我只需在域中添加一个头以允许来自CloudFlare的脚本:

add_header Content-Security-Policy "script-src 'self' ajax.cloudflare.com;";

我在该子域名的nginx配置(实际上是计时器容器)中执行了此操作,重新启动了nginx,并进行了测试以确保它接受了,它做到了:

但是当我尝试加载域时,它不会加载,检查器显示如下:

由于不太熟悉这一点,有谁知道我把它搞砸了吗?

推荐答案

我哪里搞砸了?

首先,这里:

我只需向域添加标题以允许来自CloudFlare的脚本:
add_header Content-Security-Policy "script-src 'self' ajax.cloudflare.com;";
我在Nginx配置中这样做

其次,您信任report-uri服务,但它辜负了您。

  1. 在将CSP标头添加到Nginx配置之前,您的ajax.cloudflare.com出现了问题(否则,为什么要添加它)。这意味着您已经通过HTTP头或元标记<meta http-equiv= 'Content-Security-Policy'>发布了CSP。
    通过将CSP标头添加到Nginx配置,您已向页面添加了第二个策略。
    多个CSP用作顺序过滤器-所有来源都必须通过两个CSP才能解析。第二个CSP允许ajax.cloudflare.comhost-source,但第一个CSP仍然禁止它(即您在检查器中被观察)。

您必须找出发布第一个CSP的位置并将ajax.cloudflare.com添加到其中,而不是发布第二个CSP。

  1. 没有人知道report-uri的背后是什么,以及如果同时发布两个CSP HTTP标头或一个与meta标记配对的HTTP标头将如何反应
    看看浏览器实际获得了哪些CSP以及其中的多少个,该指南是here
    如果有2个CSP标头,您将看到类似以下内容:

如果是CSP元标记,您可以通过检查HTML代码轻松地进行检查。

我想report-uri没想到会出现这种情况。

这篇关于CSP、RocketLoader和Nginx?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆