Content-Security-Policy нарушает вывод console.log

Разработка приложения на версии 5 Cordova (с использованием фреймворка phonegap). Последние обновления требуют использования метатега Content-Security-Policy в соответствии с их документацией: https://github.com/apache/cordova-plugin-whitelist

Вот мой тег для приложения:

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

Когда я включаю это, все работает нормально, за исключением того, что сообщения console.log не передаются на терминал при запуске «phonegap serve» (инструмент, предоставляемый для «тестирования» вашего приложения с помощью приложения, предварительно установленного на вашем устройстве).

Однако, если я удалю тег из своего кода, сообщения console.log будут правильно отправлены на терминал, но я больше не смогу отправлять запросы данных в свой домен example.com.

Я испробовал множество вариантов, используя http://content-security-policy.com/ в качестве руководства. но я не могу заставить его работать правильно.

Примечание. Это новая функция в v5 Cordova, так как раньше все работало без проблем.


person Kevin S    schedule 16.06.2015    source источник


Ответы (1)


Вот пример моих настроек в Content-Security-Policy. У меня нет * в производстве, но я заменил * всеми принятыми местоположениями.

Также мне нужно было добавить gap://ready для платформы IOS. Не совсем уверен, зачем это нужно, но когда я отлаживал IOS, я увидел, что он выдает ошибку на gap://ready.

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

В приведенной выше строке появляется мое сообщение console.log().

person Mark Veenstra    schedule 16.06.2015
comment
Это сработало, спасибо - я посмотрю на это дальше, чтобы увидеть, смогу ли я изолировать точную причину, но на первый взгляд, похоже, что это как-то связано с gap://ready - person Kevin S; 17.06.2015