Как не разориться на СМСках, отправляемых с сайта
По долгу своей службы провожу аудиты безопасности сайтов. И сейчас пошла большая мода на работу с СМСками на сайте. Например, подтвердить свой номер, введя одноразовый СМС-пароль или "привязать" свой номер к учётной записи. Каждая СМСка стоит фирме денег, поэтому, для защиты от бесконечных нажатий на кнопку "Выслать пароль" - ставится защита. Чаще всего, после первого нажатия, появляется таймер с обратным отсчётом, а кнопка блокируется. Но, по моему опыту, эта самая блокировка в большинстве случаев является фикцией. Злоумышленник может "подсмотреть" какой запрос отправляется на сервер и посылать аналогичные сотнями в несколько потоков, неумолимо тратя деньги компании, если на сервере (бекенде) не организована полноценная защита.
Есть один простой способ проверить свой сайт (он работает в большинстве случаев, но бывают и исключения). Пример будет приводится для работы с браузером Google Chrome.
1. Открываем сайт
2. Доходим до формы отправки СМСки
3. Нажимаем "Получить код"/"Выслать пароль" (выберите свой вариант)
4. Правой кнопкой мышки кликаем по кнопке, описанной выше, и выбираем пункт "Inspect"
5. Скорее всего, вы увидите нечто подобное
6. Дважды кликаем по disabled="disabled" и смело стираем (тем самым, разблокируя кнопку).
7. Пробуем нажать на кнопку "Получить код"/"Выслать пароль"
Если вам придёт вторая СМСка, то это означает, одно: ваш сайт в зоне риска. Конкуренты или злоумышленники могут нанести финансовый ущерб вашей компании.
P.S. Здесь описан самый простейший способ, который работает не всегда. Если аудитории будет интересно, могу в отдельном посте рассказать как "поймать" тот самый запрос на отсылку СМСки из своего браузера и как потом его воспроизвести. Данный тест более сложен, но работает всегда.