Учебники

Кордова — Белый список

Этот плагин позволяет нам реализовать политику белого списка для навигации по приложению. Когда мы создаем новый проект Cordova, плагин белого списка устанавливается и реализуется по умолчанию. Вы можете открыть файл config.xml, чтобы увидеть настройки по умолчанию, разрешенные Cordova.

Белый список навигации

В приведенном ниже простом примере мы разрешаем ссылки на некоторые внешние URL-адреса. Этот код находится в config.xml . Переход к файлу: // URL разрешены по умолчанию.

<allow-navigation href = "http://example.com/*" />

Знак звездочки * используется для перехода к нескольким значениям. В приведенном выше примере мы разрешаем навигацию по всем поддоменам сайта example.com . То же самое можно применить к протоколу или префиксу к хосту.

<allow-navigation href = "*://*.example.com/*" />

Белый список намерений

Существует также элемент allow-intent, который используется для указания того, каким URL разрешено открывать систему. В config.xml вы можете видеть, что Cordova уже разрешила большинство необходимых нам ссылок.

Белый список сетевых запросов

Когда вы смотрите внутри файла config.xml , есть элемент <access origin = «*» /> . Этот элемент разрешает все сетевые запросы к нашему приложению через Cordova hooks. Если вы хотите разрешить только определенные запросы, вы можете удалить его из config.xml и установить его самостоятельно.

Используется тот же принцип, что и в предыдущих примерах.

<access origin = "http://example.com" />

Это позволит все сетевые запросы от http://example.com .

Политика безопасности контента

Вы можете увидеть текущую политику безопасности для вашего приложения в элементе head в index.html .

<meta http-equiv = "Content-Security-Policy" content = "default-src 
   'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 
   'self' 'unsafe-inline'; media-src *">

Это конфигурация по умолчанию. Если вы хотите разрешить все из того же источника и example.com , то вы можете использовать —

<meta http-equiv = "Content-Security-Policy" content = "default-src 'self' foo.com">

Вы также можете разрешить все, но ограничить CSS и JavaScript одним и тем же источником.

<meta http-equiv = "Content-Security-Policy" content = "default-src *; 
   style-src 'self' 'unsafe-inline'; script-src 'self' 
   'unsafe-inline' 'unsafe-eval'">

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