Как правильно активировать учетную запись через $ _GET? - PullRequest
0 голосов
/ 28 июля 2011

Так что сейчас, когда пользователь регистрируется, его пароль хэшируется и сохраняется, его идентификатор сохраняется в качестве первичного ключа, а ячейка в поле email_activation по умолчанию нумеруется как «нет».Затем им отправляется электронное письмо, в котором их учетная запись может быть активирована путем нажатия на ссылку ниже.

http://website.com/activation.php?id=1&pass=23a000e03e9116c958dh923542

После нажатия на ссылку запускается следующий скрипт

$id= $_GET['id'];
$hashPass= $_GET['pass'];

mysql_query("UPDATE members SET email_activation='yes' WHERE members_id='$id' AND members_password='$hashPass'")

Похоже ли это на безопасный способ активировать чей-либо аккаунт, учитывая, что его хешированный проход является частью URL (при условии надлежащей очистки строк и т. Д.)?

Ответы [ 4 ]

3 голосов
/ 28 июля 2011

Нет.Используйте отдельное поле для хранения хэша активации и основывайте его на нескольких вещах (имя пользователя, хэш пароля, время суток и т. Д.).

2 голосов
/ 28 июля 2011

Нет необходимости вводить пароль, хэшированный или нет, в ссылку (и нет, вы не должны этого делать).

Сохранять другое случайное значение в дополнение к пароль в вашей базе данных, а затем поместите это случайное значение в ссылку.(См .: http://en.wikipedia.org/wiki/Cryptographic_nonce)

Поскольку значение случайной активации будет использоваться только один раз (и это не то, что может предоставить нормальный доступ к учетной записи), можно поместить его в URL.

0 голосов
/ 28 июля 2011

Я бы создал другое поле в вашей таблице только для активации.Таким образом, у вас не будет хэша пароля в URL.

(Я не был достаточно быстр в моем ответе.)

0 голосов
/ 28 июля 2011

Это не очень безопасно, нет.Вместо этого было бы лучше назначить уникальный и случайный ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...