Я строю систему входа в систему для веб-сайта без SSL, так что вот мой инструмент:
У меня есть таблица на сервере, которая имеет два поля: необработанное имя пользователя и pass_hashed (hased with sha1 (пароль)). Когда-либо пользователь входил в мою систему, я делаю:Работает ли моя система входа в систему?
- создать ключ.
- password_hashed = sha1 (ключ + sha1 (пароль))
- отправить 3 значения: имя пользователя, ключ, password_hashed
В стороне сервера:
- проверить, если ключ был сохранен в если да, сделайте логин неверным, иначе сохраните ключ в базе данных.
- запрос для информации о пользователе на имя пользователя, а затем сравнить sha1 (key + pass_hased) и password_hashed.
Мой вопрос - мой метод в порядке? Если да, могу ли я использовать ключ как временную метку?
'Я строю систему входа в систему для веб-сайта без SSL. Это невозможно сделать безопасным. Использовать SSL. http://www.matasano.com/articles/javascript-cryptography/ http://rdist.root.org/2010/11/29/final-post-on-javascript-crypto/ – SLaks
Кроме того, что он выиграл Это поможет, это безопасный дизайн, за исключением того, что SHA1 слишком грубодействующий (используйте PBKDFv2). Также обратите внимание, что любой, кто крадет вашу базу данных, может олицетворять любого пользователя (только на вашем сайте) – SLaks
Спасибо за ваши замечательные комментарии. Infact my clinet - это C++-прогама, а не веб-браузер, но вы правы в выдаче выдачи ... – nvcnvn