Безопасность и доверие

Как безопасно хранить API-ключ, когда сайт и CRM подключены к сервису звонков

Команда Sado AI · · 4 мин чтения

Коротко

API-ключ — это пароль, которым ваша система входит в сервис звонков. Главные правила: заведите отдельный ключ на каждую систему, дайте ему только нужные права, храните ключ в настройках сервера — не в коде сайта, не в Telegram и не в Excel. Ушёл разработчик или агентство — замените ключ. Проверяйте подпись вебхуков. Если ключ утёк, выпустите новый, отзовите старый и проверьте лиды и звонки за это время.

Что такое API-ключ и почему он равен паролю

Когда форма на сайте, CRM или 1С передают данные в сервис звонков, они предъявляют ключ. Тот, кто знает ключ, может отправлять лиды от вашего имени, а голосовой оператор будет звонить по ним с вашего номера. Ключ с правом читать расшифровки открывает всё, что говорили ваши клиенты.

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

7 правил хранения API-ключа

  • Отдельный ключ на каждую систему. Для формы сайта, CRM и 1С — три разных ключа. Утёк один — меняете только его, остальные работают.
  • Только нужные права. Форма сайта лишь отправляет лиды — ей хватает права на запись лидов. Расшифровки читает только та система, которой они действительно нужны.
  • Ключ живёт на сервере. Храните его в переменных окружения (environment variables) или в хранилище секретов. Никогда не вставляйте его в код, который выполняется в браузере, или в мобильное приложение: оттуда ключ увидит любой.
  • Не в чатах и файлах. Не пересылайте ключ в Telegram, по почте, в таблице Excel и не кладите в Git-репозиторий. Разработчику нужен доступ — выпустите ему отдельный ключ.
  • Ведите список: какой ключ где стоит, кто и когда его поставил. Например: «форма сайта — 3 ноября — разработчик Анвар».
  • Человек ушёл — ключ меняется. В день ухода разработчика, агентства или IT-сотрудника замените все ключи, которые он видел.
  • Меняйте ключи и без повода: например, раз в полгода.

Какой системе какие права нужны

СистемаЧто делаетПрава
Форма сайтаОтправляет новую заявку на звонокleads:write
CRMОтправляет лиды и читает их статусleads:write, leads:read
Таблица отчётовЧисло звонков и их итогcalls:read
Контроль качестваРезюме и текст разговораcalls:content
Интернет-магазинОбновляет цены и остаткиcatalog:write

Названия прав взяты из API Sado. В других сервисах они называются иначе, но правило то же: система получает только то, что нужно для её работы.

Вебхук: точно ли запрос пришёл от сервиса

Вебхук — это когда сервис сам отправляет итог звонка на ваш адрес. Адрес могут узнать и другие, поэтому проверяйте каждый запрос:

  • Используйте только адрес с HTTPS.
  • Проверяйте подпись. Sado подписывает каждый запрос: заголовок X-Sado-Signature — HMAC-SHA256 с вашим секретом. Подпись не сошлась — отклоняйте запрос.
  • Не принимайте запросы старше 5 минут: так старый запрос нельзя отправить повторно, чтобы обмануть систему.
  • Секрет вебхука храните на сервере, как и API-ключ.

Если ключ утёк: 5 шагов

  1. Выпустите новый ключ и поставьте его в систему.
  2. Сразу отзовите старый — не завтра, а сейчас.
  3. Проверьте лиды и звонки с момента утечки: незнакомые номера, странное время, повторяющиеся имена.
  4. Если звонки уходят по чужим лидам, остановите все звонки одной кнопкой и включите снова после проверки.
  5. Найдите, откуда утёк ключ (чат, файл, код сайта), уберите его оттуда и напишите команде Sado.

Как устроены API-ключи в Sado

Ключ создаётся в портале: Настройки → API-ключи. Он показывается один раз, поэтому сразу перенесите его в настройки сервера. У каждого ключа свои права: leads:write, leads:read, calls:read, calls:content (резюме и текст), catalog:write. На один ключ — 600 запросов в минуту. Если вдруг пошли ошибки 429, проверьте: это может быть сбой в вашей системе или чужое использование ключа.

В каждом лиде, отправленном по API, указывается основание для звонка: человек оставил заявку, дал согласие или уже ваш клиент. Как только лид пришёл, ИИ-оператор звонит, а итог возвращается через вебхук или ленту событий. Примеры кода — на странице для разработчиков, о связке с CRM — звонки и CRM, короткие ответы — в частых вопросах.

Вопросы

Опасно ли давать API-ключ внешнему разработчику?

Если выпустить ему отдельный ключ, риск небольшой: после работы или его ухода вы отзываете только этот ключ. Ключи других систем не передавайте.

Можно ли вписать API-ключ в код сайта?

В код, который выполняется в браузере, — нет: код страницы может открыть любой. Пусть форма отправляет данные на ваш сервер, а ключ добавляет сервер.

Как часто менять API-ключ?

Сразу, если ушёл человек с доступом или есть подозрение на утечку. В остальное время — например, раз в полгода.

Попробуйте Sado на своих звонках.

Поговорите с оператором прямо на сайте или позвоните на 78 778 01 23 — именно так его услышат ваши клиенты.

78 778 01 23Telegram