内容安全策略拒绝连接到 Websocket 错误

Posted

技术标签:

【中文标题】内容安全策略拒绝连接到 Websocket 错误【英文标题】:Contenct Security Policy refuses connect to Websocket Error 【发布时间】:2018-03-30 07:30:25 【问题描述】:

由于我的 CSP(内容安全策略),我无法连接到 websocket - 出了什么问题?

错误:

ps-client-component-websocket-adapter.js:412 拒绝连接 'wss://hostname.domain:port/jsonWebSocket' 因为它违反 以下内容安全策略指令:“connect-src 'self'”。

我的 IIS web.config

 <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
            <system.webServer>
                <httpProtocol>
                    <customHeaders>
                        <add name="Cache-Control" value="no-cache" />   
                        <!---<add name="X-Content-Security-Policy" value="default-src 'self' 'unsafe-eval'; connect-src 'self'; img-src 'self'; object-src 'none'; child-src *;" />-->
                        <add name="Content-Security-Policy" value="connect-src 'self' wss://hostname.domain:port/jsonWebSocket; default-src 'self' 'unsafe-eval'; img-src * data:; object-src 'none'; child-src *;" />              
                    </customHeaders>
                </httpProtocol>
            </system.webServer>
        </configuration>
        </configuration>

【问题讨论】:

【参考方案1】:

您似乎在connect-src 中缺少逗号。

【讨论】:

你能澄清一下吗?你能把更新的版本发过来吗?【参考方案2】:

聚会有点晚了,但是as per MDN,

connect-src 'self' 不能在所有浏览器中解析为 websocket 模式,更多信息请参见 this issue。

您可能希望将wss 添加到connect-src,例如in this answer。

【讨论】:

以上是关于内容安全策略拒绝连接到 Websocket 错误的主要内容,如果未能解决你的问题,请参考以下文章

拒绝连接到“wss://live.mysite.com:3000/”,因为它违反了以下内容安全策略指令:

使用 WebSocket 连接服务器时连接被拒绝

内容安全策略 [错误] 拒绝加载脚本 safari

收到错误内容安全策略错误:拒绝创建工作人员

Vimeo 内容安全策略错误 - 拒绝加载脚本

WebSocket 连接到“wss://”失败:意外响应代码:500