Cordova 允许web套接字的内容安全策略元标记

Cordova 允许web套接字的内容安全策略元标记,cordova,websocket,socket.io,phonegap-plugins,content-security-policy,Cordova,Websocket,Socket.io,Phonegap Plugins,Content Security Policy,情况:phonegap服务的自动加载被内容安全策略元标记阻止 添加内容安全策略可防止自动重新加载phonegap-service实用程序。这是建立在cordova serve之上的,但在文件编辑时自动重新加载应用程序。它通过在index.html中注入socket.io来工作。我应该在CSP元标记中指定什么,以允许与笔记本电脑进行套接字连接 这是我当前的CSP元标记: <meta http-equiv="Content-Security-Policy" content="default-s

情况:
phonegap服务的自动加载被内容安全策略元标记阻止

添加内容安全策略可防止自动重新加载
phonegap-service
实用程序。这是建立在
cordova serve
之上的,但在文件编辑时自动重新加载应用程序。它通过在
index.html
中注入
socket.io
来工作。我应该在CSP元标记中指定什么,以允许与笔记本电脑进行套接字连接

这是我当前的CSP元标记:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' 192.168.0.100 * ws:* ; connect-src ws://192.168.0.100 ws:*"> 

但是,在打开时,设备始终显示“连接到设备”,并且设备上未接收到任何事件


还请注意,它开始着手删除此meta标记,这意味着
cordova插件白名单可能不会阻止它。

我也有类似的问题。这会影响Cordova 5.x.x。请参阅Nic Raboy的这篇博文

我不得不稍微调整meta标记,以使我的websocket也能够连接。这就是它的样子

 <meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">

要将web套接字添加到安全策略,请将web套接字协议(ws:)添加到connect src指令

connect-src 'self' ws:;
或者,您可以将ws:protocol添加到默认src并省略connectsrc。下面是一个有用的示例,它支持大多数本地开发需求,同时仍然提供有用的安全约束

<meta http-equiv="Content-Security-Policy"
      content="default-src 'self' data: gap: ws: ssl.gstatic.com 'unsafe-inline';">


的文档出人意料地好且易于阅读。

如果您的websocket位于同一主机/端口上,那么无论是
连接src'self'
还是
默认src'self'
都应该足够了-假设CSP规范在()中发生了更改。

这是有效的。我想我遗漏了
脚本src*“不安全内联”“不安全评估”
这个答案有误导性,而且有危险的一面。*启用来自违反安全策略的所有源的连接。有关更多详细信息,请参阅另一个答案。唯一有帮助的补充是我需要添加wss:for secure web socketGreat!如何限制到ws://localhost?我正在尝试,但它不起作用。目前safari不支持使用“self”的websocket-to-self