Safari 不理解我的 Content-Security-Policy 标头

Fre*_* Ex 5 safari nginx websocket http-headers content-security-policy

当我说:

add_header Content-Security-Policy default-src 'self'; script-src 'self' unsafe-inline; connect-src wss://mysite.com;
Run Code Online (Sandbox Code Playgroud)

在我的标题中。但是 Safari 说:

拒绝连接到 wws://mysite,因为它没有出现在内容安全策略的 connect-src 指令中。[错误] SecurityError(DOM 异常 18):操作不安全。(匿名函数)(myjavascripturl.js)

为什么 Safari 不理解我的 Content-Security-Policy 标头?

Sco*_*lme 4

在您提供的策略中,不安全内联周围不需要单引号。改变这个:

add_header Content-Security-Policy default-src 'self'; script-src 'self' unsafe-inline; connect-src wss://mysite.com;
Run Code Online (Sandbox Code Playgroud)

对此:

add_header Content-Security-Policy default-src 'self'; script-src 'self' 'unsafe-inline'; connect-src wss://mysite.com;
-------------------------------------------------------------------------^-------------^
Run Code Online (Sandbox Code Playgroud)

这可能会影响策略的解析。


另一个问题是您提供的错误消息。

Refused to connect to wws://mysite
-----------------------^
Run Code Online (Sandbox Code Playgroud)

您的代码中是否有拼写错误,这应该是 wss 吗?