Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
С 10 июня 2019 (а технически с ноября 2019), Яндекс прекратил поддержку анонимного использования сервисов JS API & HTTP Geocoder — тарифицируемые запросы к API (поиск, геокодирование, панорамы и т.д.) перестали работать. Но адекватного биллинга и трекинга запросов Яндекс — не предоставил. Если интересно как спихнуть счёт за геокодирование на гигантов рунета (перечисленных партнёров на заглавной странице сервиса), а так же — как трекинг запросов делается «по уму» — прошу под кат.
Компания или разработчик регистрируется в личном кабинете разработчиков Яндекса. И создаёт ключ (похож на UUID). Ключ не имеет никаких настроек (Домен, лимиты и т.д.) и служит только для разделения тарификации.
На странице где требуются функции карт — вставляется JS скрипт и API ключ: (URL для «платной» версии может отличаться).
Далее статью можно было бы не писать. Но мы ведь за добро и за своё бабло, учитывая что размещая этот ключ — оно тратится третьими лицами.
Пока это всё отсутсвует — любой может взять ваш ключ и геокодить в удовольствие.
Всем добра и берегите свои ключи =)
Почему появилась эта статья
Я бы не написал этот пост, если бы уважаемый valshavel не отклонил мой комментарий к статье «Как мы внедряли WebAssembly в Яндекс.Картах и почему оставили JavaScript». Там задавался вопрос «почему».
Писать в техподдержку Яндекс карт — по опыту за 10 лет — не эффективно, ощущение что там только один разработчик который тянул весь проект. На самом деле, вместо Сбербанка — золотую акцию надо было дать этому разработчику и ещё пару процентов обычных.
Писать в техподдержку Яндекс карт — по опыту за 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>
Заметили? Нет? Следите за пальцами:
- Ключ является публичным. (АЛЛО! какой нафиг биллинг по публичному API ключу?).
- На ключе отсутствуют настройки (Привязки к домену, сервису, лимиты).
- Любой может взять ваш ключ и использовать в любых целях (это не запрещено законом, вы сами его публикуете на своей странице и рандомный хеш не является объектом авторского права).
Далее статью можно было бы не писать. Но мы ведь за добро и за своё бабло, учитывая что размещая этот ключ — оно тратится третьими лицами.
Давайте подумаем, что нужно сделать папе(не биологическому, но всё же) рунета (и тому герою-разработчику), чтобы дети не страдали:
- Одна карта — один ключ (https://www.mapbox.com/).
Ключ относится к конкретной карте. В настройках ключа прописываются разрешённые домены (не забудте про wildcard). По ключу запрещается геокодирование через HTTP API. - Лимиты запросов.
Я не хочу попасть на деньги из-за злоумышленников. - Авторизация к ключу / Приватный ключ.
Я хочу ключ для своих сервисов которые используют геокодинг и отдельный билинг по ним.Я не хочу чтобы джун залез в ЛК и взял мой ключ для публичной карты.
Пока это всё отсутсвует — любой может взять ваш ключ и геокодить в удовольствие.
Всем добра и берегите свои ключи =)