Пишу систему регистрации/авторизации. Есть фронтенд на angular и бекенд на django. В БД будет храниться хеш пароля.
Подскажите пожалуйста на какой стороне безопаснее хешировать пароль для процесса регистрации? Если я буду это делать на бекенде, то по http пароль будет передаваться в момент регистрации в открытом виде, это опасно. Но если я буду хешировать пароль на фронтенде, то любому желающему станет доступен использующийся алгоритм хеширования, в этом тоже ничего хорошего нет.
Я понимаю, что идеально безопасных систем не существует, но хотелось бы услышать наиболее популярные решения.
Если вы хешируете на клиенте и передаёте на бекенд хеш, то чем этот хеш технически отличается от пароля? Правильно — ничем, это и есть пароль.
В 21 веке человечество придумало https, а не так давно Let's Encrypt сделал его доступным всем и бесплатно, так что не осталось никаких объективных причин не пользоваться https.
Если вы хешируете на клиенте и передаёте на бекенд хеш, то чем этот хеш технически отличается от пароля? Правильно — ничем, это и есть пароль.
Не согласен. Этот хеш будет храниться в БД. при авторизации пароль будет хешироваться и сравниваться с хешем, который в БД. при этом, если злоумышленник получит все хеши из БД, то он не сможет их использовать для авторизации
> при авторизации пароль будет хешироваться
Где? Если на клиенте, то вы знать не знаете хешировал ли я настоящий пароль или украл хеш и отправил его.
Если на сервере, то значит пароль таки летит в чистом виде по сети и изначальный вопрос не имеет смысла.