Инструкция по доступу к внешним ресурсам

Список разрешенных доменов это модель безопасности, которая контролирует доступ во внешние домены, к которому ваше приложение не имеет доступа. Политика безопасности по умолчанию для 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.)