Инструкция по доступу к внешним ресурсам
Список разрешенных доменов это модель безопасности, которая контролирует доступ во внешние домены, к которому ваше приложение не имеет доступа. Cordova предоставляет настраиваемую политику безопасности для определения, к каким внешним сайтам может быть получен доступ. По умолчанию новые приложения настроены для доступа к любому сайту. Прежде чем переносить приложение для рабочую среду, следует сформулировать список разрешений и разрешить доступ к определенным сетевым доменам и поддоменам.
Для Android и iOS (по состоянию на их версии 4.0) политики безопасности Cordova могут быть расширяемым через инерфейс плагина. Ваше приложение должно использовать cordova-plugin-whitelist, так как он обеспечивает лучшую безопасность и настраиваемость, чем более ранние версии Cordova. Хотя это возможно осуществить свой собственный плагин управления доступом к внешним ресурсам, это не рекомендуется, за исключением случая если ваше приложение имеет весьма специфические требования политики безопасности. Смотрите cordova-plugin-whitelist за подробностями об использовании и настройке.
Cordova следует спецификации W3C Доступ виджета, которая опирается на элемент <access>
в файле config.xml
приложения, чтобы включить сетевой доступ к отдельным доменам. Для проектов которые погалаются на процесс с использованием командной строки, описанный в разделе "Интерфейс командной строки", этот файл расположен в корневой папке проекта. В противном случае при использовании пути разработки с использованием платформо-ориентированного кода, места расположения указаны в разделах ниже. (См. различные руководства платформ для получения дополнительной информации на каждой платформе.)
В следующих примерах демонстрируется синтаксис <access>
списка разрешенных ресурсов:
Доступ к google.com:
<access origin="http://google.com" />
Доступ по защищенному протоколу к google.com (
https://
):<access origin="https://google.com" />
Доступ к поддомену maps.google.com:
<access origin="http://maps.google.com" />
Доступ для всех поддоменов для домена google.com, например, mail.google.com и docs.google.com:
<access origin="http://*.google.com" />
Доступ ко всем доменам, например, google.com и developer.mozilla.org:
<access origin="*" />
Это значение по умолчанию для вновь созданных проектов CLI.
Имейте ввиду что некоторые сайты могут автоматически перенаправить вас со своей домашней страницы на другой URL, например используя протокол HTTPS или на домен специфичный для страны пользователя. Например http://www.google.com будет перенаправлять на использование протокола SSL/TLS по адресу https://www.google.com и затем может перенаправить на оснввании вашего географического расположения, например https://www.google.co.uk. Такие сценарии могут потребовать измененных или дополнительных записей в списке разрешенных доменов по отношению к вашим первоначальным требованиям. Пожалуйста, учитывайте это, когда вы строите ваш список разрешенных доменов.
Обратите внимание, что список разрешенных доменов применяется только к основным WebView Cordova и не применяется к InAppBrowser WebView или при открытии ссылки в веб-браузере системы.
Список разрешений Amazon Fire OS
Список разрешений расположен вres/xml/config.xml
.
Список разрешений Android
Как указано выше см. cordova-plugin-whitelist для подробностей. Для cordova-android до 4.0.0 версии смотрите старые версии этой документации.
Список разрешений iOS
Как указано выше см. cordova-plugin-whitelist для подробностей. Для cordova-ios до 4.0.0 версии смотрите старые версии этой документации.
Список разрешений BlackBerry 10
Разрешающие правила могут быть найдены в www/config.xml
.
Использование шаблонов в BlackBerry 10 отличается от остальных платформы двумя способами:
Любой контент, к которому получается доступ с использованием
XMLHttpRequest
должн быть объявлен явным образом. Установкаorigin="*"
в этом случае не работает. Как вариант, веб-безопасность можно отключить с помощью параметраWebSecurity
, описанном в разделе Настройка BlackBerry:<preference name="websecurity" value="disable" />
Как альтернатива параметру
*.domain
, установите дополнительный атрибутsubdomains
со значениемtrue
. Он установлен вfalse
по умолчанию. Например, следующее описание позволяет получить доступ кgoogle.com
,maps.google.com
, иdocs.google.com
:<access origin="http://google.com" subdomains="true" />
А следующее описание ограничивает доступ до
google.com
:<access origin="http://google.com" subdomains="false" />
Укажите доступ ко всем доменам, в том числе для протокола локальной файловой системы
file://
:
(За более подробной информацией о поддерживаемых функциях, смотрите документации BlackBerry по тегу access.)
Firefox OS
В Firefox OS нет концепции разрешения определенного домена. Вместо этого есть специальное разрешение называемое SystemXHR. Существует необходимость добавить это разрешение в config.xml
:
<platform name="firefoxos">
<permission name="systemXHR" privileged="true" description="load data from server" />
</platform>
ОбъектXMLHttpRequest
должен быть инстанцирован с двумя параметрами mozAnon
и mozSystem
:
var request = new XMLHttpRequest({
mozAnon: true,
mozSystem: true});
Это решение является прозрачным, так что нет никакой разницы при использовании его совместно с другими платформами.
Список разрешений Windows Phone
Списки разрешающий правил для Windows Phone 7 и 8 находятся в файле config.xml
приложения.
Список разрешений Tizen
Списки разрешающий правил находятся в файле приложения config.xml
. Платформа рассчитывает на тот же атрибут subdomains
что и платформа BlackBerry. (За более детальной информацией о поддерживаемых функциях, смотрите документацию Tizen по тегу access.)