Spec-Zone.ru › Cordova 7

Руководство по белому списку

Белый список доменов — это модель безопасности, которая контролирует доступ к внешним доменам, на которые у вашего приложения нет контроля. Cordova предоставляет настраиваемую политику безопасности для определения внешних сайтов, к которым можно получить доступ. По умолчанию новые приложения настроены для разрешения доступа к любому сайту. Перед переходом приложения в производство, вы должны сформулировать белый список и разрешить доступ к определённым сетевым доменам и поддоменам.

Для Android (начиная с версии 4.0), политика безопасности Cordova расширяется через интерфейс плагина. Ваше приложение должно использовать плагин cordova-plugin-whitelist, так как он обеспечивает лучшую безопасность и настраиваемость по сравнению с более ранними версиями Cordova. Хотя возможно реализовать собственный плагин белого списка, это не рекомендуется, если у вашего приложения нет очень специфических потребностей в политике безопасности. Подробную информацию об использовании и настройке см. в cordova-plugin-whitelist.

Для других платформ Cordova соответствует спецификации доступа к виджетам W3C W3C Widget Access, которая полагается на элемент <access> в файле config.xml приложения для включения сетевого доступа к определённым доменам. Для проектов, которые полагаются на рабочий процесс CLI, описанный в Руководстве по интерфейсу командной строки, этот файл расположен в корневой директории проекта. В противном случае для платформ с специфическими путями разработки расположения перечислены в разделах ниже.

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

Обратите внимание, что белый список применяется только к основному веб-вью Cordova и не применяется к веб-вью InAppBrowser или открытию ссылок в системном веб-браузере.

Белый список Android

Как указано выше, см. cordova-plugin-whitelist для получения подробной информации. Для cordova-android до версии 4.0.0 см. более старые версии этой документации.

Белый список iOS

Cordova-ios версия 4.0 и выше не требует установки плагина cordova-plugin-whitelist, однако его параметры конфигурации также применяются к iOS. Теги <allow-intent> и <allow-navigation> являются новыми для cordova-ios 4.x и выше, см. документацию cordova-plugin-whitelist для получения подробной информации об использовании этих тегов.

Для версий cordova-ios до 4.0.0 см. более старые версии этой документации.

Безопасность транспортного уровня приложений (ATS) является новой функцией в iOS 9 (Xcode 7). Эта новая функция действует как белый список для вашего приложения. Cordova cli автоматически преобразует теги <access> и <allow-navigation> в соответствующие директивы ATS.

Теги <access> и <allow-navigation> поддерживают следующие три атрибута, которые имеют свои эквиваленты в ATS:

  1. minimum-tls-version (Строка, по умолчанию 'TLSv1.2')
  2. requires-forward-secrecy (Булево значение, по умолчанию 'true')
  3. requires-certificate-transparency (Булево значение, по умолчанию 'false', новый в iOS 10)
  • пример:

    <access origin='https://cordova.apache.org' minimum-tls-version='TLSv1.1' requires-forward-secrecy='false' requires-certificate-transparency='true' />
    

В iOS 10 и выше, тег <access> поддерживает следующие три атрибута ниже, при использовании символа подстановки источника *. Эти атрибуты также имеют свои эквиваленты в ATS:

  1. allows-arbitrary-loads-for-media (Булево значение, по умолчанию 'false', новый в iOS 10. Новый в cordova-ios@4.5.0, исправлено для использования правильного имени атрибута. Старый атрибут allows-arbitrary-loads-in-media теперь устарел).
  2. allows-arbitrary-loads-in-web-content (Булево значение, по умолчанию 'false', новый в iOS 10)
  3. allows-local-networking (Булево значение, по умолчанию 'false', новый в iOS 10)
  • пример:

    <access origin='*' allows-arbitrary-loads-for-media='true' allows-arbitrary-loads-in-web-content='true' allows-local-networking='true' />
    

См. Техническое описание ATS для получения дополнительной информации.

Белый список BlackBerry 10

Правила белого списка находятся в www/config.xml.

Использование подстановочных знаков в BlackBerry 10 отличается от других платформ в двух аспектах:

  • Любой контент, к которому осуществляется доступ через XMLHttpRequest, должен быть явно объявлен. Установка origin="*" в этом случае не работает. В качестве альтернативы, вся веб-безопасность может быть отключена с помощью параметра WebSecurity, описанного в разделе "Настройка BlackBerry":

    <preference name="websecurity" value="disable" />
    
  • В качестве альтернативы установке *.domain, установите дополнительный атрибут subdomains в true. По умолчанию он должен быть установлен в false.

    <!-- Narrows access to google.com -->
    <access origin="http://google.com" subdomains="false" />
    
    <!-- Allows access to maps.google.com and docs.google.com -->
    <access origin="http://google.com" subdomains="true" />
    
    <!-- Allows access to all domains, including the local `file://` protocol -->
    <access origin="*" subdomains="true" />
    

Для получения дополнительной информации см. документацию BlackBerry по элементу доступа.

Белый список Windows Phone

Правила белого списка для Windows Phone 8 находятся в файле config.xml приложения.

© 2012, 2013, 2015 The Apache Software Foundation
Licensed under the Apache License 2.0.
https://cordova.apache.org/docs/en/7.x/guide/appdev/whitelist/index.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API