You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Cordova中为Content Security Policy添加允许的URL?

解决Cordova应用连接本地PeerJS服务器的CSP拦截问题

问题根源

你当前的CSP规则里,default-src写的是*.<my-ip>,这仅允许带前缀子域名的请求(比如abc.<my-ip>),但实际请求的是不带子域名的http://<my-ip>,还有带端口:9000的地址,这俩都不符合现有规则,所以被拦截了。另外因为没单独设置connect-src,浏览器会用default-src作为网络请求的 fallback 规则。

修改方案

可以通过两种方式修正,推荐第二种(更清晰,符合CSP最佳实践):

方案1:修正default-src规则

直接把*.<my-ip>改成<my-ip>:*,允许该IP下所有端口的请求,同时保留其他原有规则:

<meta http-equiv="Content-Security-Policy"
content="default-src <my-ip>:* 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

方案2:显式设置connect-src(推荐)

单独添加connect-src规则,专门管控网络请求,这样default-src可以保持原有范围,更安全:

<meta http-equiv="Content-Security-Policy"
content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; connect-src <my-ip>:* 'self'; style-src 'self' 'unsafe-inline'; media-src *">

说明

  • <my-ip>:* 表示允许该IP地址下所有端口的HTTP/WS请求,覆盖你用到的默认端口和9000端口。
  • 如果PeerJS还用到WebSocket连接,规则已经包含在内,因为connect-src默认涵盖ws://和wss://协议(只要地址匹配)。

内容的提问来源于stack exchange,提问作者IvanHid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:45:41