Защита формы входа — на что реально стоит заморочиться
Заметил, что многие делают форму авторизации и думают, что достаточно только простой HTTPS и защита от SQL-инъекций. Но это лишь базовый минимум. Сейчас расскажу, на что реально обратил внимание при защите своих проектов.
Первое — блокировка по IP в случае нескольких неудачных попыток. Не у всех это стоит, и иногда проще настроить, чем потом разбираться с последствиями взлома через перебор паролей.
Второе — обязательно добавить проверку CSRF-токена. Без нее легко сделать так, что кто-то подставит форму от себя и выполнит нежелательный вход или другое действие.
Третье — фильтрация и ограничение длины полей. Многие забывают, что можно нагородить форму, подавая миллион символов, и привести к багам или даже нагрузке.
Четвертое — капча или аналог для защиты от ботов, но лучше с умом — не убивать юзабилити, а поставить, например, при подозрительной активности.
И, конечно, пароль должен хэшироваться на сервере с сильным алгоритмом. Вопреки ожиданиям, не все это делают.
Проверял эти моменты сам, ловил баги через тесты и иногда юзер-фидбэк. Какие еще нюансы у вас с защитой форм проскакивали?