"Nie znaleziono znacznika Meta Content-Security-Policy."błąd w aplikacji phonegap

Po aktualizacji Cordova 5.0 w moim systemie, tworzę nowe aplikacje. Kiedy testowałem moją aplikację na urządzeniu, tym razem dostaję błąd w dzienniku konsoli:

No Content-Security-Policy meta tag found.
Please add one when using the Cordova-plugin-whitelist plugin.: 23.

Dodaję meta w sekcji head

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

Ale znowu, mam ten sam błąd, w aplikacji używam wtyczki przeglądarki in-app i 7 innych linków do stron internetowych.

Author: Manikandan C, 2015-05-13

5 answers

Po dodaniu cordova-plugin-whitelist , Należy powiedzieć aplikacji, aby umożliwić dostęp do wszystkich linków na stronie internetowej lub konkretnych linków, jeśli chcesz zachować go specyficzne.

Możesz po prostu dodać to do swojego config.xml , który można znaleźć w katalogu głównym aplikacji:

Zalecane w dokumentacji:

<allow-navigation href="http://example.com/*" />

Lub:

<allow-navigation href="http://*/*" />

Z dokumentacji wtyczki:

Nawigacja Biała Lista

Kontroluje, do których adresów URL można nawigować. Dotyczy tylko nawigacje najwyższego poziomu.

Dziwactwa: na Androidzie dotyczy to również ramek iFrame dla Systemów innych niż http(S).

Domyślnie dozwolone są nawigacje tylko do adresów URL file://. Aby umożliwić inne inne adresy URL, musisz dodać tagi do swojego config.xml:

<!-- Allow links to example.com -->
<allow-navigation href="http://example.com/*" />

<!-- Wildcards are allowed for the protocol, as a prefix
     to the host, or as a suffix to the path -->
<allow-navigation href="*://*.example.com/*" />

<!-- A wildcard can be used to whitelist the entire network,
     over HTTP and HTTPS.
     *NOT RECOMMENDED* -->
<allow-navigation href="*" />

<!-- The above is equivalent to these three declarations -->
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
 86
Author: Keval,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-04 20:48:04

Musisz dodać meta tag CSP w sekcji head aplikacji index.html

Zgodnie z https://github.com/apache/cordova-plugin-whitelist#content-security-policy

Polityka Bezpieczeństwa Treści

Kontroluje, które żądania sieciowe (obrazy, XHR, itp.) są dozwolone (bezpośrednio przez webview).

Na Androidzie i iOS biała lista żądań sieciowych (patrz wyżej) nie jest możliwość filtrowania wszystkich typów zapytań (np. <video> & WebSockets są nie zablokowany). Tak więc, oprócz białej listy, należy użyć Polityka Bezpieczeństwa Treści <meta> tag na wszystkich Twoich stronach.

Na Androidzie obsługa CSP w systemie webview zaczyna się od KitKat (ale jest dostępny we wszystkich wersjach korzystających z WebView Crosswalk).

Oto przykładowe deklaracje CSP dla stron .html:

<!-- Good default declaration:
    * gap: is required only on iOS (when using UIWebView) and is needed for JS->native communication
    * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
    * Disables use of eval() and inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
        * Enable inline JS: add 'unsafe-inline' to default-src
        * Enable eval(): add 'unsafe-eval' to default-src
-->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *">

<!-- Allow requests to foo.com -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' foo.com">

<!-- Enable all requests, inline styles, and eval() -->
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

<!-- Allow XHRs via https only -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:">

<!-- Allow iframe to https://cordova.apache.org/ -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; frame-src 'self' https://cordova.apache.org">
 37
Author: tomtastico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-22 14:49:32

Są błędy w meta tagu.

Twój:

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

Poprawiono:

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

Zwróć uwagę na dwukropek po "script-src"i podwójny cudzysłów na końcu znacznika meta.

 23
Author: Kae Verens,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-21 13:53:14

Dla mnie wystarczyło przeinstalować whitelist plugin:

cordova plugin remove cordova-plugin-whitelist

A następnie

cordova plugin add cordova-plugin-whitelist

Wygląda na to, że aktualizacja z poprzednich wersji Cordova nie był sukces.

 2
Author: Maxim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-26 19:05:41

Dla mnie problem polegał na tym, że używałem przestarzałych wersji cordova android i IOS platform. / Align = "left" /[email protected] i [email protected] rozwiązałem to.

Możesz uaktualnić do tych konkretnych wersji:

cordova platforms rm android
cordova platforms add [email protected]
cordova platforms rm ios
cordova platforms add [email protected]
 1
Author: Pierre-Alexis de Solminihac,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 21:56:43