Apache-2.2

Cloudflare + Apache + CSP 標頭:返回舊的 CSP 標頭

  • February 19, 2021

我們在我們的伺服器上使用 apache2,它落後於 cloudflare(免費計劃)。

我目前正在實施 googles recaptcha,這需要我對我們的 CSP 標頭進行更改。我做了什麼:

  1. 在 Apache 中更改 CSP
  2. 執行apachectl configtest——一切正常
  3. 重啟阿帕奇
  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 值): 在此處輸入圖像描述

在沒有任何幫助之後,我停止了 apache 以查看它是否真的停止了。好吧,看看,我的網站仍然可以訪問。執行命令後,ps aux | grep apache我看到 4 個程序仍在執行。我跑了killall -9 apache2,然後再次啟動了 apache,瞧,它的工作。

所以我猜是由於先前的錯誤或在執行的多個 apache 程序過載,這導致了奇怪的行為。

引用自:https://serverfault.com/questions/1054132