Короче, поставил себе задачу не допускать простых дырок в форме авторизации. Просто открыть форму с логином и паролем – полдела, дальше надо надежно закрыть заднюю дверь.
Первое, что всегда проверяю — обязательный HTTPS. Без него даже самый крутой пароль передается в чистом виде и ловится на раз. Если на сервере ещё нет нормального сертификата — это прямо красный флаг.
Дальше смотрю на защиту от перебора. Лимиты на попытки входа — базовая вещь, бан IP на час-два после 5-10 неудачных попыток обычно работает. Кто-то вешает капчу, но мне этот вариант кажется раздражающим для честных пользователей.
Самая частая прокладка — ещё и защита от CSRF с токенами. Без них форму легко слать посторонние скрипты. Проверял, что токен обновляется для каждой сессии и случайный.
Ну и по паролям — не храню их в базе просто так, всегда хеш с современной солью, ну и если движок старый — меняю метод хранения сразу. Gost, bcrypt или Argon2 — стоит выбирать, чтобы не выбрать устаревший md5/smd5.
Много нюансов с самими ошибками — не стоит показывать, что сломался именно пароль или логин, лучше одно общее сообщение "Неверные данные". Это сбивает с толку атакующих.
Как у вас с практикой обхода таких защит? Кто-то заморачивался с мультифактором или дополнительными капчами?
Все правильно подметил, особенно про общий ответ на ошибки — реально сбивает с толку. Капчи раздражают, но иногда без них совсем никак, если боты жёстко лезут. По паролям — Argon2 сейчас реально топ, и не жалко крутить его, если нет критичных ограничений по серверу. Только учти, что лимиты на попытки лучше делать не только по IP, а ещё по учётке и устройствам, чтобы не словить ложный блок.
Чисто из собственного опыта могу сказать, что простая ставка на https и ограничение по попыткам уже сильно поднимает планку безопасности. Аргон2 классный вариант для паролей, пусть и требует ресурсов, зато надёжно. Капчи действительно раздражают, но иногда без них никак — лучше чуть потерпеть, чем открывать дверь ботам. Ну и про общий ответ на ошибки — точно, это реально сбивает злоумышленников с толку.