Найдите все способы запустить отправку
Код может отправляться при входе, регистрации, восстановлении доступа и подтверждении операции. Если ограничить только один адрес, другой путь может продолжать расходовать тот же баланс. Составьте карту маршрутов и определите, что делает один запрос.
Модуль RoboGuard учитывает допущенные POST к настроенным маршрутам. Одна допущенная операция не является квитанцией провайдера, числом доставленных SMS или суммой списания. Приложение должно гарантировать, что один такой запрос не запускает произвольное количество сообщений.
- Выпишите точные адреса отправки, формат тела и поле номера телефона.
- Разделите назначения: например, вход и восстановление, сохранив общую картину расходов сайта.
- Проверьте повторные отправки внутри приложения и используемые им очереди.
- Сопоставьте операции приложения с отчётом SMS-провайдера, учитывая задержку и неуспешные доставки.
Ограничивайте расход на нескольких уровнях
Лимит только по IP не покрывает распределённую отправку и может задеть людей из одной сети. В RoboGuard предусмотрены квоты по получателю, браузеру посетителя, назначению и сайту, а также ограничения перебора разных номеров.
Квота получателя учитывает нормализованный номер, но не подтверждает владение им. Браузер посетителя определяется предусмотренной проверкой и cookie; это не доказательство физического устройства или личности. Общий бюджет сайта нужен как предел совокупного допуска.
| Ограничение | Какую задачу решает | Что учесть |
|---|---|---|
| Получатель | Повторные отправки на один номер | Несколько назначений не должны давать новый независимый бюджет номеру. |
| Браузер посетителя | Частые запросы одного проверяемого браузера | Cookie не равна человеку, возможны несколько браузеров. |
| Назначение | Расход отдельной функции | Порог должен покрывать нормальные операции этой функции. |
| Весь сайт | Совокупный распределённый расход | При исчерпании ограничения затронут и последующие нормальные отправки. |
| Перебор номеров | Серию обращений к разным получателям | Учитывайте нормальный сценарий и объясняйте причину ограничения. |
Проверьте предпосылки и полноту наблюдения
SMS-профиль необходимо включить и настроить для вашего сайта; наличие функции в кабинете не означает защиты всех форм по умолчанию. Режим блокировки требует предусмотренной проверки посетителя и защиты формы. Сначала проверьте совместимость конкретного пользовательского пути.
В наблюдении видны допущенные операции и случаи, которые были бы ограничены. При неполных данных отчёт должен показывать пробел, а не уверенный ноль. Переход к блокировке ограничивает будущий расход, но не восстанавливает неизвестную историю прошлого наблюдения.
- Убедитесь, что настроен каждый нужный маршрут и поле номера разбирается однозначно.
- Проверьте обычные варианты ввода телефона и понятную ошибку для неверного значения.
- Сверьте статус публикации настроек, готовность модуля и полноту отчёта.
- Выбирайте пороги по нормальному поведению и допустимому бюджету, а не по произвольным универсальным числам.
Пройдите сценарий без расходов на сообщения
Для проверки используйте тестовый получатель на стороне приложения, который считает операции и не отправляет платные SMS. Пройдите обычную форму, проверку посетителя, успешный допуск, достижение выбранной квоты и восстановление после её окна.
Проверьте разные маршруты одного назначения и несколько назначений для одного номера. CAPTCHA не отменяет жёсткий бюджет: даже проверенный посетитель должен получить понятный ответ при превышении. Нельзя считать настройку принятой только потому, что она сохранилась в кабинете.
- Выполните обычную отправку и убедитесь, что приложение получило одну операцию.
- Достигните тестового лимита только в разрешённой тестовой среде и проверьте ответ формы.
- Убедитесь, что смена пути входа на путь восстановления не обходит общий лимит получателя.
- Проверьте, что обычные страницы сайта продолжают работать при ошибке SMS-маршрута.
- Сверьте отчёт модуля с фактически полученными тестовым приложением операциями.
Объясняйте посетителю ограничение и следите за расходом
При превышении квоты используется ответ 429 с ограниченным временем до повтора. Неверный запрос или номер и недоступность обязательного механизма — другие ситуации; интерфейс не должен одинаково сообщать во всех случаях, что «код отправлен». Автоматический бесконечный повтор только усугубит проблему.
После включения сравнивайте допуск, отказы, неполноту наблюдения и реальный расход у провайдера. Потеря ответа после допуска может консервативно занять бюджет, даже если пользователь не увидел успех. Такая модель не позволяет обещать точное совпадение счётчика разрешённых POST с оплаченной доставкой SMS.