Как стать автором
Поиск
Написать публикацию
Обновить

Как спихнуть на соседа счёт за пользование услугами Yandex Maps API или для чего IT гиганту нужен контроль качества

Время на прочтение2 мин
Количество просмотров32K
С 10 июня 2019 (а технически с ноября 2019), Яндекс прекратил поддержку анонимного использования сервисов JS API & HTTP Geocoder — тарифицируемые запросы к API (поиск, геокодирование, панорамы и т.д.) перестали работать. Но адекватного биллинга и трекинга запросов Яндекс — не предоставил. Если интересно как спихнуть счёт за геокодирование на гигантов рунета (перечисленных партнёров на заглавной странице сервиса), а так же — как трекинг запросов делается «по уму» — прошу под кат.

Почему появилась эта статья
Я бы не написал этот пост, если бы уважаемый valshavel не отклонил мой комментарий к статье «Как мы внедряли WebAssembly в Яндекс.Картах и почему оставили JavaScript». Там задавался вопрос «почему».
Писать в техподдержку Яндекс карт — по опыту за 10 лет — не эффективно, ощущение что там только один разработчик который тянул весь проект. На самом деле, вместо Сбербанка — золотую акцию надо было дать этому разработчику и ещё пару процентов обычных.

«Как оно работает» с JS API карт


Компания или разработчик регистрируется в личном кабинете разработчиков Яндекса. И создаёт ключ (похож на UUID). Ключ не имеет никаких настроек (Домен, лимиты и т.д.) и служит только для разделения тарификации.

На странице где требуются функции карт — вставляется JS скрипт и API ключ: (URL для «платной» версии может отличаться).

<head>
    <script src="https://api-maps.yandex.ru/2.1/?apikey=ваш API-ключ&lang=ru_RU" type="text/javascript">
    </script>
</head>

Заметили? Нет? Следите за пальцами:


  1. Ключ является публичным. (АЛЛО! какой нафиг биллинг по публичному API ключу?).
  2. На ключе отсутствуют настройки (Привязки к домену, сервису, лимиты).
  3. Любой может взять ваш ключ и использовать в любых целях (это не запрещено законом, вы сами его публикуете на своей странице и рандомный хеш не является объектом авторского права).

Далее статью можно было бы не писать. Но мы ведь за добро и за своё бабло, учитывая что размещая этот ключ — оно тратится третьими лицами.

Давайте подумаем, что нужно сделать папе(не биологическому, но всё же) рунета (и тому герою-разработчику), чтобы дети не страдали:


  1. Одна карта — один ключ (https://www.mapbox.com/).
    Ключ относится к конкретной карте. В настройках ключа прописываются разрешённые домены (не забудьте про wildcard). По ключу запрещается геокодирование через HTTP API.
  2. Лимиты запросов.
    Я не хочу попасть на деньги из-за злоумышленников.
  3. Авторизация к ключу / Приватный ключ.
    Я хочу ключ для своих сервисов которые используют геокодинг и отдельный биллинг по ним.Я не хочу чтобы джун залез в ЛК и взял мой ключ для публичной карты.

Пока это всё отсутствует — любой может взять ваш ключ и геокодить в удовольствие.

Всем добра и берегите свои ключи =)
Теги:
Хабы:
Всего голосов 55: ↑52 и ↓3+49
Комментарии91

Публикации

Ближайшие события