2014-11-21 67 views
1

我們最近在新發布的Chrome v.39中發現了一個有趣的bug。Chrome v.39和Content-Security-Policy HTTP標頭

它剛剛撞上標準的「Aw Snap!」如果iframe加載帶有Content-Security-Policy HTTP標頭的頁面,則在每個帶有iframe的頁面上發送消息。這阻止了網站,因爲我們託管了一些第三方廣告。 從我發現的「內容安全策略」標題是一個W3C標準和谷歌瀏覽器用於支持v.25和v.38版本之間。但從現在開始他們沒有。

有沒有人知道這個問題的一個很好的實際解決方案?如果沒有此解決方法,是否有辦法阻止Chrome瀏覽器崩潰?

+0

我可以保證它在chrome 39中得到很好的支持,否則github將無法工作。我沒有看到CSP和「aw snap」頁面之間的任何關聯。你能提供一個鏈接嗎?提供正在使用的政策?如果有任何提供控制檯輸出?我更傾向於責怪第三方廣告的內容,而不是標題 – oreoshake 2014-11-21 19:51:21

+0

好吧,讓我解釋一下:我沒有任何證據表明Chrome官方停止支持此「Content-Security-Policy」標題。我說的是,它無法顯示/呈現一個頁面,其中有一個在HTTP響應中獲得這樣的頭部的iframe。 – YoMan78 2014-11-24 11:12:34

+0

我的測試案例非常簡單:從第一個設置「Content-Security-Policy」頭部的第一個設置的2個不同URL中加載完全相同的(二進制比較)內容,第二個設置不包含。嵌入頁面爲_with_該頭部崩潰,並且不會使_without_崩潰。它可能是內容和標題的組合,但我希望Google工程師能夠解決這個問題。 – YoMan78 2014-11-24 11:25:46

回答

0

爲了解決這個問題,我們必須添加一個邏輯,它只向IE發送X-Content-Security-Policy給除IE和Content-Security-Policy之外的所有內容。這是難看的代碼/解決方案,但至少它停止了崩潰。

+0

順便說一句,任何最新版本的Chrome或Firefox都不支持X-Content-Security-Policy。 – oreoshake 2014-11-24 17:59:10

1

如果你想支持Chrome 39/40,我發現在域前添加協議可以防止崩潰(這在CSP 2.0中不是必需的,但它比崩潰更好)。

如果您想要支持Chrome 41,即使沒有協議名稱,它也不會崩潰。

希望這會有所幫助。