Когда я пытался развернуть свое приложение на устройства с системой андроида выше 5.0.0, я продолжал получать этот вид сообщений об ошибках:
07-03 18:39:21.621: D/SystemWebChromeClient (9132): file:///android_asset/www/index.html: Строка 0: Отказанный для загрузки сценария 'http://xxxxx', потому что это нарушает следующую директиву политики Безопасности содержания: "сценарий-src 'сам' 'небезопасно-встроенная' 'небезопасная оценка'". 07-03 18:39:21.621: I/chromium (9132): [INFO:CONSOLE (0)] "Отказался загружать сценарий 'http://xxx', потому что он нарушает следующую директиву политики Безопасности содержания: "сценарий-src 'сам' 'небезопасно-встроенная' 'небезопасная оценка'".
Однако, если я развернул его на мобильном устройстве с системой андроида 4.4.x, политика безопасности работает с по умолчанию:
Затем я думал, возможно, я должен измениться на что-то вроде этого:
В основном обе опции не работают на для меня. У кого-либо есть идея того, как решить эту проблему?
Добавление метатега для игнорирования этой политики не помогало нам, потому что наш веб-сервер вводит Content-Security-Policy
заголовок в ответе.
В нашем случае мы используем Ngnix в качестве веб-сервера для tomcat9 java-приложения. От веб-сервера это направляет браузер для не разрешения inline scripts
, таким образом, для временного тестирования мы выключили Content-Security-Policy
путем комментария.
, Как выключить в ngnix?
По умолчанию ngnix ssl.conf будет иметь этот заголовок добавления к ответу.
#> grep 'Content-Security' -ir /etc/nginx/global/ssl.conf
add_header Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; script-src 'self'; img-src 'self'; style-src 'self'; base-uri 'self'; form-action 'self';";
, Если Вы просто комментируете эту строку и перезапускаете ngnix, это не должно добавлять заголовок к ответу.
, Если Вы обеспокоены безопасностью или в производстве, не следуйте за этим, используйте эти шаги как только для тестирования цели и хождения дальше.