2017-10-10 125 views
2

我曾經遇到過這個問題,但現在才成爲一個真正的問題。無法通過PHP修改內容安全策略頭文件

幾年前,我實施了內容安全策略。我使用PHP來設置標題。下面是我的標題。

內容安全-政策:默認-src的 '自我' www.googleadservices.com ssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net

這完美的作品。但是,如果我以任何方式更改它,發送的標頭仍然是相同的。即使我刪除了服務器發送的代碼。

我認爲瀏覽器可能會緩存這個,但新的瀏覽器和在線頭部檢查器一樣。我認爲Web服務器可能會緩存這個,但對其他標題指令的修改可以正常工作。

我使用IIS7.5在Windows Web服務器2008

對PHP 31年6月5日NTS這是一個奇怪的問題,既不是谷歌,也不是一個SO搜索已經變成了什麼。

代碼: 舊代碼:

header("Content-Security-Policy: default-src 'self' www.googleadservices.com 
ssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net 
"); 

新代碼:

header("Content-Security-Policy: default-src 'self' www.googleadservices.com 
ssl.google-analytics.com www.google-analytics.com googleads.g.doubleclick.net sealserver.trustwave.com; 
style-src 'self' fonts.googleapis.com; object-src 'none'; 
"); 

生成的頭不管是什麼。

Content-Security-Policy: default-src 'self' www.googleadservices.com 
ssl.google-analytics.com www.google-analytics.com 
googleads.g.doubleclick.net 

任何提示,將不勝感激。

+0

你檢查過你的'iis'配置文件嗎?從[這篇文章](https://stackoverflow.com/questions/37992225/config-your-iis-server-to-use-the-content-security-policy-header/37996726#37996726),你可以定義你的CSP在你的配置文件中;你可能早些時候用原來的CSP完成了這個工作,現在它正在覆蓋你的新CSP –

+0

我從來沒有在其他地方設置過CSP頭,但無論如何我還是複選了,因爲你永遠不知道。該設置既不在web.config中,也不在C:\ Windows \ System32 \ inetsrv \ config中。我們有一些帶有內嵌javascript的密碼保護頁面,所以我避免使用CSP站點範圍。我會繼續尋找。 –

+0

作爲參考,這裏是我的http頭設置在IIS配置。 X-Frame:同源 X-X-XSS-Protection:1:模塊 - X-XSS-Protection:1:模塊 - –

回答

0

我使用PHP來設置標題。 (...)但是,如果我以任何方式更改它,發送的標頭仍然是相同的。即使我刪除了服務器發送的代碼。

我最好的猜測,爲什麼老頭被髮送:代碼是在奇怪的地方做一些意想不到的事情。我會grep整個源代碼header()的任何實例,並從那裏開始。

對於長期易維護的解決方案,您可能會發現比手動編寫它們更容易。