Сохранение зашифрованного пароля в сеансе против url

#asp.net #security #session #login

#asp.net #Безопасность #сеанс #аутентификация

Вопрос:

С точки зрения безопасности имеет ли какое-либо значение, где хранится зашифрованный пароль для входа в систему? Я думал о том, чтобы иметь что-то вроде следующего:

 Password = 123456
Encrypted = 21909qujea8je2829dj92

url = selectaccount.aspx?p=21909qujea8je2829dj92amp;email=someemail@somewhere.com

or 

Session["encryptedPassword"] = 21909qujea8je2829dj92
Session["LoginEmail] = someemail@somewhere.com
  

Комментарии:

1. Почему вы сохраняете пароль? Почему бы вам не проверить, что пароль действителен, а затем сохранить результат этой проверки в состоянии сеанса?

2. Мне нужно войти в систему пользователя с этим паролем.

Ответ №1:

Нет необходимости хранить пароль в любом из этих мест. После того, как пользователь прошел аутентификацию, его файл cookie должен сохранить свою личность. Современный встроенный asp.net реализации аутентификации являются безопасными и гибкими. По какой причине вам нужно заново изобретать колесо?

PS — хеширование вместо шифрования считается лучшей практикой для работы с паролями.

Ответ №2:

Храните его на сервере (в сеансе) и не делайте его общедоступным через строку запроса. После того, как пользователь ввел свой пароль, его не следует отправлять ему обратно (зашифрованным или нет), чтобы он мог перенести его на следующую страницу.