Content-Security-Policy 在使用该应用程序时突然停止工作

Content-Security-Policy suddenly stopped working while using the app

我在 Cordova 应用程序上工作了几个月,在几个月前按照我想要的方式设置 Content-Security-Policy 之后,我从未遇到过任何问题。

我的应用程序在启动时连接到服务器。几个月都是同一台服务器。

但是今天我正在使用该应用程序时它突然停止工作。我的应用程序崩溃了(第一次发生),然后当我重新启动它时,我在尝试连接到服务器时遇到了 CSP 错误。

我没有更改 CSP,我什至根本没有在处理它。

我尝试重新启动 phone 和服务器,但没有解决问题。

所以我想连接的地址是 http://my.random.address.com:40017/4DSOAP

我的 CSP 是 <meta http-equiv="Content-Security-Policy" content="default-src 'self' http://*/4DSOAP https://*/4DSOAP" />

正如我所说,它几个月来都运行良好,我每周连接到服务器数百次,包括今天的几十次。

现在,如果我将 CSP 更改为 <meta http-equiv="Content-Security-Policy" content="default-src 'self' http://my.random.address.com:40017/4DSOAP https://*/4DSOAP" />(因此我尝试到达的确切地址),它就会起作用。但这不是我想要的,因为它可以是另一个端口甚至另一个地址。

Chrome调试的错误是:

Refused to connect to 'http://my.random.address.com:40017/4DSOAP' because it violates the following Content Security Policy directive: "default-src 'self' http:// * /4DSOAP https:// * /4DSOAP". Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.

我的 phone 是否有可能在我使用该应用程序时进行了更新,该更新更改了 webview 和 CSP 的工作方式(可能不再允许使用星号或工作方式不同)?

好的,我通过将 CSP 更改为:

解决了这个问题

http://*:*/4DSOAP https://*:*/4DSOAP" />

所以我没有星号,而是两个:一个用于 IP,一个用于端口。

我仍然不知道为什么它突然停止工作了。