Инструкция по доступу к внешним ресурсам
Список разрешенных доменов это модель безопасности, которая контролирует доступ во внешние домены, к которому ваше приложение не имеет доступа. Политика безопасности по умолчанию для Cordova позволяет получить доступ к любому сайту. Прежде чем переносить приложение для рабочую среду, следует сформулировать список разрешений и разрешить доступ к определенным сетевым доменам и поддоменам.
Cordova следует спецификации W3C Доступ виджета, которая опирается на элемент <access>
в файле config.xml
приложения, чтобы включить сетевой доступ к отдельным доменам. Для проектов которые погалаются на процесс с использованием командной строки, описанный в разделе "Интерфейс командной строки", этот файл расположен в корневой папке проекта. В противном случае при использовании пути разработки с использованием платформо-ориентированного кода, места расположения указаны в разделах ниже. (См. различные руководства платформ для получения дополнительной информации на каждой платформе.)
В следующих примерах демонстрируется синтаксис белый список:
Доступ к 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.
Список разрешений Amazon Fire OS
Список разрешений расположен вres/xml/config.xml
.
Список разрешений Android
Платформа специфического whitelisting правила находятся вres/xml/config.xml
.
Замечание: Для Android 2.3 или ранее, список разрешения работает только для ссылок href
, а не для добавленных ресурсов, таких как изображения и скрипты. Принимайте шаги, чтобы исключить добавление скриптов в приложение.
Переход с помощью ссылки href
к домену не указанному в списке разрешений приводит к тому что страница открывается в браузере а не в приложении. (Сравните это с поведением iOS указанном ниже.)
Список разрешений iOS
Список разрешения для платформы может быть найден в файле config.xml
расположенном в каталоге с именем приложения.
Ресурсы указанные без протокола, как например www.apache.org
в отличие от http://www.apache.org
, по умолчанию разрешают доступ ко схемам http
, https
, ftp
, и ftps
.
Шаблоны на платформе iOS более гибкие, чем в спецификации W3C Доступ виджета. К примеру, следующая конструкция разрешает доступ к всем поддоменам и доменам верхнего уровня, как например .com
и .net
:
<access origin="*.google.*" />
В отличие от платформы Android упомянутой выше, попытка перехода к домену не указанному в списке разрешений через ссылку href
, на iOS предотвращает открытие страницы полностью.
Список разрешений 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.)
Изменения для iOS в версии 3.1.0
До версии 3.1.0, Cordova-iOS включала некоторые нестандартные расширений к списку разрешенных доменов поддерживаемым остальными платформами Cordova. Начиная с 3.1.0, список разрешенных доменов для iOS соотвествует синтаксису списка разрешенных доменов описанному в начале этого документа. Если вы обновляетесь с версии до 3.1.0, и вы использовали эти разширения, вам возможно понадобиться изменить ваш config.xml
файл для того чтобы продолжить разрешать доступ к тому же набору ресурсов что и ранее.
Точнее, эти шаблоны должны быть обновлены:
apache.org
(без протокола): это значение ранее указывало на возможность использования протоколовhttp
,https
,ftp
, иftps
. Измените на «*://apache.org/*
» чтобы включить все протоколы, или включите строку для каждого протокола, который необходимо поддерживать.http://apache.*
(подстановочный знак в конце домена): это ранее обеспечивало совпадение с любыми доменами верхнего уровня, включая все возможные комбинации ДВУ из двух букв (но не полезные домены как .co.uk). Включить строку для каждого TLD, который вы фактически контролируете и к которому необходимо предоставить доступ.h*t*://ap*he.o*g
(подстановочные знаки для случайных недостающие буквы): они больше не поддерживаются; измените файл и включить строку для каждого домена и протокола, что вам действительно необходим в списке разрешений.
Список разрешений Windows Phone
Списки разрешающий правил для Windows Phone 7 и 8 находятся в файле config.xml
приложения.
Список разрешений Tizen
Списки разрешающий правил находятся в файле приложения config.xml
. Платформа рассчитывает на тот же атрибут subdomains
что и платформа BlackBerry. (За более детальной информацией о поддерживаемых функциях, смотрите документацию Tizen по тегу access.)