Форма авторизации — это самая больная точка для почти любого сайта. Вроде всё просто, но пробелов может быть столько, что диву даёшься. Лично я бы первым делом проверил, как у вас там обстоят дела с защитой от брутфорса и капчей. Без этого можно сразу забыть про нормальную безопасность, особенно при открытых регистрациях.
Дальше обязательно HTTPS — не только для главной, а именно для формы входа. Пароли в открытом виде — самоубийство. Если используете собственный код, то не забывайте про фильтрацию и валидацию данных, чтобы не словить SQL-инъекцию или XSS. Очень помогает подготовленные запросы.
Пароли должны храниться с нормальными современными хешами и «солью» — не MD5 или что-то подобное. Лучше bcrypt, argon2 или хотя бы sha256 с нормальной работой по времени. И ещё: никогда не храните пароли в сессиях или куках!
Про двухфакторную аутентификацию тоже забывать не стоит, особенно если это важно для пользователей. И ещё есть смысл ограничить количество неудачных попыток и блокировать IP на время. Ну и CSRF-токены для форм — не помешают.