IOSOR База знаний
Гейт подписи и окна replay
Prod-гейт: проверить подпись и ограничить окно replay до того, как webhook станет money или status truth — unsigned/stale остаются fail-closed.
Неподписанный или протухший webhook — не status truth и не должен двигать prepaid money. Покупателю нужен жёсткий гейт: verify подписи плюс ограниченное окно replay до любого обновления ledger или product status. Эта страница — именно гейт, не эссе про ротацию подписи и не playbook inbound SMS retry.
Связанные: подпись webhook и окно replay, повторы входящего вебхука, Общий язык статусов для product и finance, debit и delivery status в одном ledger.
IOSOR — white-label prepaid. USD 20 оплачивает пилот гейта на одном consumer; soft review около USD 1 000/мес делает пропуск verify риском forged-status. Клиент видит только white-label reject macros.
Verify подписи — money gate
Money и status truth начинаются только после прохождения проверки подписи. Missing, mismatched или skipped подписи fails closed — нет строки ledger, нет «delivered всё равно для пилота». Catalog Live не отменяет гейт. Глубина привычек: подпись webhook и окно replay. Soft USD 1 000/мес считает «принимать unsigned в staging вечно» долгом production; USD 20 доказывает: поддельное тело никогда не пишет debit.
Окно replay до status truth
| Проверка гейта | Pass значит | Fail значит |
|---|---|---|
| Подпись есть + валидна | Authenticated event | Reject; нет money/status write |
| Timestamp внутри окна | Достаточно свежий | Reject как replay/stale |
| Event ID ещё не видели | Первый accept | ACK без второго debit |
| Событие в контракте | В меню buyer | Drop unknown type |
At-least-once доставка будет ретраить. Поздний retry вне окна — не «maybe delivered». Логируйте отказы окна отдельно от fails подписи. Глубина inbound retry: повторы входящего вебхука.
Fail closed, когда гейт отклоняет
Отклонённые события никогда не изобретают success. Product и finance делят одни слова reject — не hero upstream codes: Общий язык статусов для product и finance. Строки debit остаются только на accepted events: debit и delivery status в одном ledger. Side effects только после ACK; CRM до гейта — путь к double truth.
Product, finance и ops делят одно proof
Product: легитимное signed, in-window событие обновляет status ровно раз? Finance: каждый money-affecting event показывает gate pass в том же UTC-окне? Ops: выгрузка signature fails vs window rejects без Slack-археологии? Soft volume language blocked, пока duplicate-in-window smoke не покажет одну строку ledger.
Чеклист покупателя по гейту подписи и replay
- Signature middleware на каждом production consumer до платного трафика?
- Окно replay названо, логируется и ограничено — не «недели»?
- Gate reject никогда не пишет money или success status?
- Дубликат in-window event ID → одно конечное состояние, без второго debit?
- Signature fail и window reject считаются отдельно для ops?
- Разговор soft USD 1 000/мес blocked, пока гейт выключен?
Любое «нет» держит гейт — и доверенную webhook truth — в draft.
Начните с IOSOR
Проверьте настройки HMAC-подписи и временного окна replay-window в консоли IOSOR перед включением боевого трафика вебхуков. Задайте жесткое ограничение свежести метки времени UTC и убедитесь, что промежуточное ПО блокирует входящие события без валидной подписи. Настройте экспорт ошибок шлюза, чтобы разделять атаки повторного воспроизведения и недействительные подписи.
Итог IOSOR
Эта статья подтвердила, что проверка подписи и временного окна является обязательным денежным шлюзом.
Был ли материал полезен?
Связанные гайды
- Мониторинг состояния конечных точек вебхуков
Узнайте, как отслеживать задержки ответов и коды состояния в IOSOR для предотвращения сбоев при доставке уведомлений и обеспечения стабильности системы.
- Настройка вебхуков для контроля пороговых значений баланса
Руководство по настройке автоматических уведомлений о балансе в IOSOR для предотвращения блокировок и управления JIT-выделением номеров при достижении лимитов.
- Обработка событий вебхуков для оперативного выделения номеров
Изучите автоматизацию жизненного цикла каналов через JIT-вебхуки в IOSOR. Настраивайте мгновенное назначение номеров и управление балансом в вашей CPaaS-платформе.