Пятый фактор
Обсудить задачу
Безопасность и эксплуатация

Подпись webhook и защита от повторного запроса

Изучаем формат одного поставщика, текущую проверку доступа, необработанное тело запроса и правила повторной доставки. Согласуем строку подписи из идентификатора, времени и тела, алгоритм HMAC либо штатную схему поставщика.

Срок: 5 рабочих дней

Когда стоит обратиться

Обычно к нам обращаются в таких ситуациях:

  • Любой пользователь, узнавший адрес обработчика, способен отправить похожий JSON и запустить действие.
  • Подпись проверяется, однако старый корректный запрос можно повторить через час или день.
  • Секрет интеграции хранится в URL, журнале либо коде и годами остаётся одинаковым.

Что именно мы сделаем

01

Изучаем формат одного поставщика, текущую проверку доступа, необработанное тело запроса и правила повторной доставки.

02

Согласуем строку подписи из идентификатора, времени и тела, алгоритм HMAC либо штатную схему поставщика.

03

Добавляем постоянное сравнение подписи, окно допустимого времени и хранилище уже обработанных идентификаторов.

04

Настраиваем одновременное принятие старого и нового секрета на период безопасной ротации.

05

Проверяем корректное событие, изменение одного байта, просроченный запрос, повтор идентификатора и смену ключа.

Что входит в стоимость

29 000 ₽ за всю работу

Изучаем формат одного поставщика, текущую проверку доступа, необработанное тело запроса и правила повторной доставки. Согласуем строку подписи из идентификатора, времени и тела, алгоритм HMAC либо штатную схему поставщика. Добавляем постоянное сравнение подписи, окно допустимого времени и хранилище уже обработанных идентификаторов.

Перед сдачей проверяем, что корректно подписанное событие обрабатывается, а изменённое тело получает отказ до бизнес-действия. В комплект результата входят: защищённый обработчик одного вида webhook и конфигурация секретов; набор автоматических проверок подписи, времени, повтора и ротации; описание формата подписи и безопасного порядка смены ключа. Небольшие связанные уточнения, которые появляются во время работы, уже учитываем в стоимости.

Что будет готово

Материалы

Передадим вам

  • Защищённый обработчик одного вида webhook и конфигурация секретов.
  • Набор автоматических проверок подписи, времени, повтора и ротации.
  • Описание формата подписи и безопасного порядка смены ключа.
Проверка

Перед сдачей проверим

  • Корректно подписанное событие обрабатывается, а изменённое тело получает отказ до бизнес-действия.
  • Просроченное событие и повтор уже использованного идентификатора отклоняются и фиксируются в журнале.
  • Во время тестовой ротации действуют два ключа, затем старый ключ выключается без потери новых событий.

Как это выглядит на практике

Повтор события изменения статуса

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

  1. 01

    Отправляем новое событие с корректной подписью и уникальным идентификатором.

  2. 02

    Повторяем тот же запрос с теми же временем и идентификатором.

  3. 03

    Обработчик отклоняет повтор до изменения заказа.

  4. 04

    Меняем тело запроса и подтверждаем отказ по подписи.

Что понадобится для работы

От вас

  • Документация поставщика webhook и доступ к текущему обработчику.
  • Тестовый секрет либо возможность создать отдельный ключ.
  • Примеры успешного события и штатной повторной доставки.

Если у вас немного другая ситуация

Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.

Стоимость работ 29 000 ₽ полная стоимость известна заранее
  1. 3 000 ₽после подписания договора через Диадок
  2. 26 000 ₽после выполнения, демонстрации и приёмки результата

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

Часто спрашивают

Об этой услуге

Чем эта работа отличается от защиты платёжных webhook?

Платёжная страница SiteVolt посвящена сохранению оплаты и защите заказа от дублей. Здесь настраивается криптографическая проверка любого входящего webhook и защита от воспроизведения запроса.

Можно проверять только IP отправителя?

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

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

Секрет выносим в защищённую конфигурацию или хранилище секретов, закрываем его от браузера, репозитория и обычных журналов.

Повторная доставка поставщика будет потеряна?

Повтор уже успешно завершённого события получает безопасный ответ без второго действия. Событие после временной ошибки сможет пройти согласно согласованному правилу.

Цена и изменения по ходу работы

Цена на странице окончательная?

Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.

Что означает резерв незапланированных работ?

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

Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.

Можно уточнять детали уже во время работы?

Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.

Начало работы и оплата

Как оформляются договор и оплата?

Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.

Когда начинается срок выполнения?

Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.

Как учитываются платные лицензии и внешние сервисы?

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

Проверка результата и гарантия

Как принимается готовая работа?

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

Какая гарантия действует после сдачи?

На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.

Следующий шаг

Опишите задачу

Расскажите, что происходит сейчас и какой результат хотите получить. Можно указать сайт, CMS, 1С, CRM, ERP или другую систему. Если подходящую услугу выбирать рано, просто опишите ситуацию — мы разберёмся и предложим следующий шаг.