2017-02-03 52 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