"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.
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:*" />
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">
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.
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.
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]
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