KIZORADOCS На сайт

Навигация

Поиск по документации

Безопасность интеграций

Одни и те же правила действуют для лент, проверок доступности и любой будущей интеграции: адрес указывает администратор сервера, а бот живёт в общей инфраструктуре.

Куда бот не ходит

ПравилоЧто это значит
Только http и httpsfile://, ftp:// и остальное закрыто списком разрешённого, а не списком запрещённого
Адрес проверяется после разрешения имениИмя может указывать на 127.0.0.1; проверяется каждый полученный адрес
Перенаправление проверяется как новый адресПубличный адрес, отвечающий редиректом на внутренний, не поможет
Ответ ограничен по размеру и времениЛента на гигабайт — это не лента

Закрыты localhost, приватные диапазоны и служебные адреса облачных метаданных.

Как проверяются входящие вебхуки

  1. Токен в адресе. Неверный — отказ до всего остального.
  2. Подпись. HMAC-SHA256, сравнение за постоянное время. Посимвольное сравнение выдавало бы длину общего префикса временем ответа.
  3. Свежесть. Отметка времени должна отличаться от текущего момента не больше чем на минуту.
  4. Идентификатор доставки. Повтор с тем же идентификатором отмечается дубликатом.
  5. Размер тела. До 256 КБ.

Где хранится секрет

Секрет вебхука хранится в базе в зашифрованном виде. Хранить его приходится: проверить HMAC чужого запроса без ключа невозможно.

Отсюда следствие, которое лучше знать заранее: доступ к базе означает доступ к каналам, куда пишут эти вебхуки. Мы выбрали настоящую подпись, а не её видимость, и говорим об этой цене прямо.

Секрет показывается один раз — в личных сообщениях при создании. Перевыпуск немедленно отключает старый.

Что делать при утечке секрета

  1. /вебхук новый-секрет — старый перестаёт работать сразу.
  2. Обновите секрет в настройках отправителя.
  3. Посмотрите журнал доставок: не приходило ли чего-то постороннего.

Права

Право integrations.manage помечено как доступ к личным данным именно поэтому: оно открывает секреты вебхуков.

Связанные страницы