Действительно ли желательно сохранить хешированный пароль в cookie?

Я хочу, чтобы пользователь был в состоянии выбрать, "помнят меня" поле на моем веб-сайте, таким образом, они не должны регистрироваться в каждый раз, когда они прибывают. Так, я должен сохранить уникальный идентификатор в cookie для идентификации их. Действительно ли безопасно хешировать их пароль с sha512 и длинной солью в PHP и хранилище, которые оценивают в cookie? Если бы cookie был украден, то их пароль находился бы в опасности? Очевидно, это должно быть подключено к их паролю так или иначе, иначе если бы значение cookie было предположено или украдено, то пользователь не был бы в состоянии остановить кого-то еще вход в систему.

Кроме того, действительно ли желательно использовать GUID вообще в качестве уникального идентификатора?

Спасибо, Ben

16
задан Ben 2 March 2010 в 04:13
поделиться

4 ответа

Не помешало бы иметь какой-то «пароль» в cookie вместе с идентификатором пользователя (чтобы пользователи не могли изменить uid на идентификатор другого пользователя), просто не делайте «пароль» таким же как фактический пароль пользователя.

И то, что это хэш, не обязательно означает, что он односторонний (ну, по определению, но есть утилиты для генерации открытых текстов MD5, и я полагаю, что это только вопрос времени, когда это случится с другими) . Я бы хэшировал какой-то вторичный пароль.

2
ответ дан 30 November 2019 в 16:18
поделиться

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

21
ответ дан 30 November 2019 в 16:18
поделиться

Здесь - отличная статья именно по этой теме. Многие ответы на ваш вопрос касаются изложенных в нем техник.

12
ответ дан 30 November 2019 в 16:18
поделиться

При хорошем алгоритме и большой соли риск невелик, но зачем лишний раз рисковать?

Если вам просто нужно идентифицировать пользователя, то храните что-то, что может однозначно идентифицировать пользователя, например, guid вместе с каким-то другим хранимым проверочным кодом (не паролем, а случайной длинной строкой). Я бы не стал использовать только guid, поскольку это небезопасный метод аутентификации.

4
ответ дан 30 November 2019 в 16:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: