Apache-2.2
Cloudflare + Apache + CSP 標頭:返回舊的 CSP 標頭
我們在我們的伺服器上使用 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 程序過載,這導致了奇怪的行為。