Я пытаюсь отойти от использования md5() для хранения и сравнения паролей. Поэтому я хочу начать использовать password_hash().Является ли этот пользователь достаточно безопасным?
Теперь, как я это делал, было бы хранить имя пользователя и пароль md5 в их сеансе или файлы cookie (если они выбрали «запомнить меня»), а затем проверить базу данных, чтобы узнать, есть ли какой-либо пользователь существует с этим именем пользователя и паролем md5'd. Я понимаю, что это не очень безопасно, поэтому я хочу остановить это.
Я больше не могу этого делать, потому что password_hash() всегда изменяется, поэтому я не могу хранить хеш в их сеансе, а затем проверять его в базе данных, потому что мне нужно использовать password_verify по неуправляемому паролю.
Так что я задаю вопрос, храню ли хешированный «идентификатор сеанса» и «токен» в пользовательской таблице, когда пользователь успешно войдет в систему, а затем сохранит это в сеансе/cookie лиц вместе с идентификатором пользователя в порядке для проверки базы данных, достаточно ли этого? Когда я говорю хэшируюсь «идентификатор сеанса» и «маркер» Я имею в виду sha256'd или даже md5'd хэш случайных больших чисел ...
Пример:
Журналы пользователя в -> хешированы «идентификатор сессии» и «токен» хранится в файлах cookie пользователей, а их строка в базе данных обновляется хэшированным «идентификатором сеанса» и «токеном».
Посещаемость сайта -> код проверяет, существует ли в базе данных их «идентификатор сеанса» и «токен» на основе их браузера/файлов cookie. Если это так, предполагается, что найденная строка представляет текущего пользователя.
Любое понимание было бы весьма полезным.
Вы можете использовать Хранение соленых паролей. –
@PraveenD - password_hash() генерирует соленый хэш уже ... что вы на самом деле предлагаете? –
Соль должна быть случайной с каждым хешем. –