
Комментарии 3
одноразовый код всего из четырех цифр легко взломать перебором всех возможных комбинаций — от 0000 до 9999
...
уже после тридцати неудачных попыток ввода, блокируя IP-адрес на одну минуту.
Кроме того, сам одноразовый код действителен всего десять минут
Просто повезло, что реализация OTP дырявая. Код должен протухать не только по времени, но и по числу неправильных попыток. Попытки должны проверяться в рамках сессии, идентификатор которой знает только открывший сессию клиент. Частота попыток ограничивается, частота создания сессий тоже ограничивается. Причём ключ ограничения не только IP-адрес, но и ид пользователя. Плюс растущий интервал. Ну и капча, куда без неё.
С полным комплексом мер перебрать уже гораздо сложнее. Побочный эффект - возможность lockout attack, то есть когда злоумышленник не пытается получить доступ к аккаунту жертвы, а просто не позволяет ей залогиниться.
X-Heeiz-Api-Key

А вот и приложение, которое автор случайно раскрыл в статье 🤓
Использование ротации IP адресов для обхода лимитов отправки одноразовых паролей (OTP) в приложении на Flutter