2012-12-01 14 views
5

我定義我的安全策略:爲什麼我的內容安全策略的工作無處不在,但Safari瀏覽器

default-src 'self'; script-src 'self'; frame-src 'self'; style-src 'self' 'unsafe-inline'; 

(我仍然有幾頁頭CSS)。

我與Firefox或Chrome(IE不支持CSP還沒有),但是,沒有煩惱,當我嘗試在Safari的測試,我得到這樣的錯誤的字符串:

Refused to load style from 'http://localhost/styles/alliance.css' because of Content-Security-Policy. 
. 
. 
. 
Refused to load image from 'http://localhost/images/Landing1.jpg' because of Content-Security-Policy. 
. 
. 
. 
Refused to load script from 'http://localhost/JQuery/jquery-1.7.2.min.js' because of Content-Security-Policy. 

的圖像應覆蓋默認情況下,src和其他兩個被列爲「自我」,所以我不知道爲什麼Safari不接受我的圖像和腳本。我沒有Mac,所以我在Windows上使用Safari(5.1.7)。

任何想法?謝謝!

回答

6

Safari 5在實施CSP方面有點落後。 Safari 6好得多,但我不認爲它已經發布了Windows。我想你只是看到了實施錯誤。如果WebKit nightlies適用於Windows,那麼這可能是測試的一個很好的選擇。

老實說,我不會推薦將X-WebKit-CSP標頭提供給Safari 5。Safari 6,是的,但5有點太破碎了,無法使用。

還請注意,您可以簡化您的政策。 script-srcframe-src都將回落到default-srcdefault-src 'self'; style-src 'self' 'unsafe-inline'應該有相同的效果。

+0

謝謝邁克。我已經看到了Safari 6如何實現CSP的參考,並且我對Safari 5的相同效果缺乏評論。鑑於Safari的Windows用戶的缺乏,我傾向於忽略它,但它仍然有助於知道它們是問題而不是我。 –

+0

感謝您的其他意見。這些「額外」的碎片是殘缺的;我原本沒有提供默認的src和Chrome工作正常。然而,Firefox需要它。 –

+0

Firefox在完全符合1.0規範之前有一點點工作要做,但他們正在取得快速進展。我希望他們會支持沒有前綴的Content-Security-Policy頭文件Soon™,這會讓你的工作變得更容易一些。 (Chrome應該支持前綴25)。 –

相關問題