我们在我们的服务器上使用 apache2,它落后于 cloudflare(免费计划)。
我目前正在实施 googles recaptcha,这需要我对我们的 CSP 标头进行更改。我做了什么:
- 在 Apache 中更改 CSP
- 运行
apachectl configtest
——一切正常 - 重启阿帕奇
- 检查 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 个页面就会出现错误。 - 要查看我的 CSP 是否是问题,我完全删除了 CSP 标头并重新启动了 apache
- 重新加载页面,但每 2 或 3 次重新加载我再次收到上述错误消息。
- 我检查了响应标头,发现每隔几个页面重新加载就会返回旧的 CSP 标头,我之前已将其删除。
可能是什么问题?我认为这个问题与 cloudflare 有关。我已经清除了 cloudflare 缓存并将 TTL 设置为“尊重现有标头”,但没有更改。我也在 Chrome 和 FF 上试过,没有运气。我在这里错过了什么吗?
这些是它工作时的响应标头:
在没有任何帮助之后,我停止了 apache 以查看它是否真的停止了。好吧,看看,我的网站仍然可以访问。运行命令后,
ps aux | grep apache
我看到 4 个进程仍在运行。我跑了killall -9 apache2
,然后再次启动了 apache,瞧,它的工作。所以我猜是由于先前的错误或在运行的多个 apache 进程过载,这导致了奇怪的行为。