Cloudflare + Apache + CSP 标头:返回旧的 CSP 标头

Cloudflare + Apache + CSP 标头:返回旧的 CSP 标头

我们的服务器上使用 apache2,它采用 cloudflare(免费计划)。

我目前正在实施 googles recaptcha,这需要我对我们的 CSP 标头进行更改。我做了以下事情:

  1. 在 Apache 中更改 CSP
  2. 运行apachectl configtest-一切正常
  3. 重启 Apache
  4. 检查 CSP 是否正常工作且 recaptcha 是否已加载 -> 前 1-2 次页面访问确实有效,但随后我收到错误:Refused to load https://www.gstatic.com/recaptcha/releases/2Mfykwl2mlvyQZQ3PEgoH710/recaptcha__en.js because it does not appear in the script-src directive of the Content Security Policy.浏览器:Safari 没有任何插件。我又重新加载了几次,每 2-3 次页面重新加载就会收到错误。
  5. 为了检查问题是否出在我的 CSP 上,我彻底删除了 CSP 标头并重启了 Apache
  6. 重新加载页面,但每隔 2 或 3 次重新加载我就会再次收到上述错误消息。
  7. 我检查了响应标头,发现每隔几页重新加载就会返回旧的 CSP 标头,而我之前已经将其删除了。

问题可能出在哪里?我认为这个问题与 cloudflare 有关。我已经清除了 cloudflare 缓存并将 TTL 设置为“尊重现有标头”,但没有变化。我也在 Chrome 和 FF 上尝试过,但没有成功。我是不是漏掉了什么?

这些是工作时的响应标头:

在此处输入图片描述

当它不起作用时(即使用旧的 CSP 值),这些是响应标头: 在此处输入图片描述

答案1

没有任何帮助后,我停止了 Apache,看看它是否真的停止了。好吧,我的网站仍然可以访问。运行命令后,ps aux | grep apache我看到 4 个进程仍在运行。我运行killall -9 apache2并再次启动 Apache,瞧,它正在运行。

所以我猜测是由于之前的错误或者多个 Apache 进程过载导致的,从而导致了奇怪的行为。

相关内容