2017-02-03 20 views
0

我最近開始在現有網站上使用CSP頭文件,並且它似乎對大多數用戶都正常工作,但我現在已收到網站未加載iOS的報告(Safari和Chrome),並且還可以確認我的尊貴的iPad無法加載該網站。內容安全政策與iOS客戶端破壞網站

的 「違反-指令」 被報告爲:

"script-src 'self' 'nonce-sh7cn3n6shh36sa1' cdn.jsdelivr.net ..other uris 

即相當標準。

我環顧四周,發現類似問題報告with iframesweb sockets的報告,但我的網站不使用這兩種標準HTML + Javascript中的任何一種。

的CSP的全部是:

Header set Content-Security-Policy-Report-Only "default-src 'self'; \ 
    script-src 'self' 'nonce-sh7cn3n6shh36sa1' cdn.jsdelivr.net \ 
       oss.maxcdn.com \ 
       ajax.googleapis.com \ 
       cdnjs.cloudflare.com \ 
       www.google-analytics.com; \ 
    style-src 'self' 'unsafe-inline' \ 
       cdn.jsdelivr.net \ 
       cdnjs.cloudflare.com \ 
       maxcdn.bootstrapcdn.com; \ 
    font-src 'self' maxcdn.bootstrapcdn.com; \ 
    img-src 'self' data: www.google-analytics.com www.paypalobjects.com; \ 

這裏有什麼最佳做法?有什麼方法可以確保CSP與所有瀏覽器和操作系統兼容(如安全子集?)。

我想使用它,但顯然它是相當有問題的不知道可以使用什麼。需要一個「W3C CSP兼容性測試」或類似的...

+0

我仍然將此視爲iOS設備Safari中的一個問題。不確定更新的。 MacOS Safari 10接受隨機數並按預期工作。 –

回答

1

這是因爲你的source expressions缺乏一個計劃:Safari要求他們。
至於Chrome,作爲iOS上的所有瀏覽器,它只是使用Safari引擎的包裝。

+0

謝謝。我的結論是,CSP對我來說實際上是無法使用的,缺乏測試每個舊版本瀏覽器的資源。當我谷歌搜索時發現了一堆其他問題。我最近找到了https://cspvalidator.org/,但它只驗證了正確性(我的CSP通行證),而不是兼容性。 – Dan