Перейти к содержимому

Защита постбеков

Адрес постбека может утечь: его видно в ПП, его можно подсмотреть в логе или в настройках. Если кто-то отправит на него поддельный постбек с нужным click id, он накрутит конверсии. Защита закрывает эту дыру двумя способами. Оба необязательны и включаются отдельно.

  • HMAC-подпись. Telegfy проверяет, что click id подписан вашим секретом.
  • Список IP. Telegfy принимает постбеки только с адресов ПП.

Настройки — в разделе «Защита постбэков» (/dashboard/postback-security).

Настройки защиты постбэков: переключатели HMAC и списка IP, поле секрета и поле адресов
  1. Переключатель HMAC-подписи.
  2. Поле общего секрета.
  3. Переключатель списка IP.
  4. Поле разрешённых IP и CIDR-диапазонов.

Подпись вычисляется как HMAC-SHA256 от click id с вашим секретом, результат в hex (64 символа). Проверка сравнивает подписи без утечки времени.

Для работы нужна связка из трёх частей: секрет у нас, макрос подписи в URL оффера и возврат подписи от ПП.

  1. Задайте секрет.

    В «Защите постбэков» введите общий секрет не короче 8 символов и сохраните. Секрет виден только при вводе. Повторно его не показывают.

  2. Добавьте макрос в URL оффера.

    Рядом с {{click_id}} поставьте {{postback_sign}}. Имя параметра выберите такое, которое ПП вернёт в постбеке:

    https://offer.example.com/?subid={{click_id}}&sign={{postback_sign}}

    Изменения настроек подписи попадают в новые ссылки с задержкой до 60 секунд.

  3. Проверьте, что ПП возвращает подпись.

    ПП должна передать значение параметра в постбеке. Telegfy принимает подпись в параметрах sign, signature или hmac. Если ПП вернёт её под другим именем, поменяйте имя в URL оффера.

  4. Включите требование подписи.

    Поставьте переключатель «Требовать подпись у входящих постбэков» и сохраните.

Постбек с неверной или отсутствующей подписью получает результат rejected и не записывается как конверсия. Ответ при этом остаётся HTTP 200, поэтому ПП может не заметить ошибку. Смотрите лог входящих постбэков.

Если click id неизвестен, проверка подписи не запускается. Ответ будет click_not_found.

Введите адреса и CIDR-диапазоны, по одному на строку:

203.0.113.10
198.51.100.0/24

Работает только IPv4. IPv6-адреса в списке не совпадут.

IP берётся из первого значения заголовка X-Forwarded-For, затем из X-Real-IP, затем из адреса соединения. Если Telegfy стоит за своим прокси, проверьте, что заголовок передаёт реальный адрес ПП. Иначе список будет работать неверно.

  1. Включите защиту, но пока не включайте требование подписи.
  2. Отправьте тестовый постбек с правильной подписью. Результат accepted.
  3. Отправьте тот же запрос с неверной подписью. Результат rejected, в логе видно причину.
  4. Включите требование подписи. Тестовый запрос без подписи должен получить rejected.