Проблема с защитой формы авторизации на сайтах — классика, с которой сталкиваюсь постоянно. Часто вижу, что люди гоняются за сложными решениями, забывая про базовые вещи. Например, простая проверка CSRF-токена в форме уже не даст пойти по прямой ссылке и отправить форму с чужого сайта. Еще важно не просто хешировать пароли, а использовать современные алгоритмы, типа bcrypt или Argon2, а не md5 или sha1.
Что ещё обычно пробегаюсь — ограничение числа попыток входа. Недолго думая, парни делают лимит в 3-5 попыток и всё — помогает отпугнуть брутфорс. Капча, к слову, тоже неплохо работает, но её не стоит ставить сразу, иначе раздражает пользователей.
Проверяю, чтобы форма отправлялась только по HTTPS — без этого всё остальное мало что значит, сидеть с незашифрованной формой сейчас просто опасно.
Интересно, что многие забывают про заголовки безопасности, которые можно настраивать для защиты от XSS и кликджекинга. Они с формы на первый взгляд не связаны, но на деле создают дополнительный барьер.
А вы как защищаете свои формы? Есть ли какие-то простые приёмы, которые реально срабатывают и не слишком геморройные?