#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:
Храните его на сервере (в сеансе) и не делайте его общедоступным через строку запроса. После того, как пользователь ввел свой пароль, его не следует отправлять ему обратно (зашифрованным или нет), чтобы он мог перенести его на следующую страницу.