2017-05-03 64 views
1

我正在開發一個Cordova應用程序幾個月,並且在按照我想要的方式設置內容安全策略之後,我幾個月前從未遇到任何內容安全策略問題。Content-Security-Policy在使用應用程序時突然停止工作

當我啓動它時,我的應用程序連接到服務器。這幾個月是同一臺服務器。

但今天它在我使用應用程序時突然停止工作。我的應用程序崩潰(第一次發生),然後當我重新啓動它時,我嘗試連接到服務器時發生CSP錯誤。

我沒有改變CSP,我甚至都沒有在這方面做過工作。

我試着重新啓動我的手機和服務器,但它沒有解決問題。

所以我想連接的地址是一樣的東西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調試的錯誤是:

拒絕連接到 'http://my.random.address.com:40017/4DSOAP',因爲它違反了以下內容安全政策指令:「默認-src的 '自我' 的http:// */4DSOAP HTTPS: // */4DSOAP「。請注意,'connect-src'沒有明確設置,所以'default-src'被用作後備。

當我使用應用程序時,是否有可能我的手機進行了更新,更新了webview和CSP的工作方式(可能星號不再允許或工作方式不同)?

回答

0

行,所以我解決它通過改變CSP到:

的http:// *:*/4DSOAP https://*:*/4DSOAP「/>

所以不是一個星號的,我有兩個:一個用於IP,另一個用於端口。

我仍然不知道爲什麼它突然停止工作,它的方式。