Ограничение доступа к ключам и разрешение использования API только с доверенных доменов является базовым механизмом защиты в экосистеме HERE Technologies. В JavaScript-библиотеке HERE Maps API for JavaScript эта концепция реализуется через контроль источников запросов (referrer restriction) и настройку разрешённых доменов для ключей доступа.
Любой клиентский JavaScript-код выполняется в открытой среде браузера, что делает API-ключи потенциально уязвимыми. Если ключ попадает в чужие руки, он может быть использован для генерации запросов, влияющих на квоты, биллинг и стабильность сервиса.
Ограничение доменов решает задачу привязки ключа к конкретным
источникам запросов. Браузер автоматически передаёт заголовок
Referer, который содержит адрес страницы, инициировавшей
запрос. Платформа сравнивает этот адрес с заранее заданным списком
разрешённых доменов.
В основе механизма лежит проверка HTTP-заголовка:
Referer;Такой подход позволяет:
В экосистеме HERE доступ к API-ключам управляется через консоль разработчика. Для каждого ключа задаются параметры безопасности, включая список разрешённых источников.
Типичная конфигурация включает:
Пример логики допустимых значений:
https://example.com/*https://*.example.com/*http://localhost:*Такой подход позволяет гибко разделять среды:
При несоответствии домена запрос блокируется на уровне сервера HERE. В ответ возвращается ошибка авторизации, чаще всего связанная с:
На стороне клиента это проявляется как:
В современных конфигурациях HERE используются API keys, однако в более старых реализациях применялись App ID и App Code.
Различие в контексте ограничения доменов:
Несмотря на эволюцию системы, принцип остаётся одинаковым: ключ должен быть привязан к конкретному источнику использования.
Типичная настройка в консоли может выглядеть логически следующим образом:
https://maps.example.comhttps://*.example.comhttp://localhost:3000В результате ключ будет работать только при выполнении условий:
Механизм referrer-based фильтрации имеет ряд технических особенностей:
Некоторые браузеры или настройки приватности могут:
В таких случаях запрос может быть отклонён.
Система рассматривает:
https://example.comhttp://example.comкак разные origin. Это важно при настройке разрешений.
Использование *.example.com позволяет охватывать:
Но не включает:
В архитектурах, где используется backend-прокси, ограничение доменов может работать иначе:
В таком случае доменные ограничения:
Часто используется стратегия множественных ключей:
Каждый ключ имеет собственный whitelist, что позволяет:
Добавление только example.com без https://
может привести к несрабатыванию проверки.
Если приложение доступно на app.example.com, но разрешён
только example.com, запросы будут блокироваться.
Локальные среды часто используют разные порты:
localhost:3000localhost:5173Если порт не учтён, доступ будет запрещён.
При использовании CDN или прокси-инфраструктуры:
В таких системах важно учитывать цепочку:
Сам механизм проверки не влияет на клиентскую производительность, однако неправильная настройка может приводить к:
Ограничение доменов часто используется вместе с:
Комбинация этих механизмов формирует многоуровневую модель защиты, где домен является первой линией проверки в браузерных сценариях.