Spec-Zone.ru › Cordova 8

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

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

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

Для других платформ Cordova придерживается спецификации W3C Widget Access http://www.w3.org/TR/widgets-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.

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

Spec-Zone.ru

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