2013-03-23 2 views
0

Я использую библиотеку password_compat для выполнения аутентификации пользователей с помощью bcrypt как алгоритма.Правильный способ аутентификации с разными хэшами?

Потому что я теперь создавать различные хэши каждый раз, я не могу сравнить хэш непосредственно в моей базе данных с SQL WHERE password = :hash

Так что теперь мой SQL заявление выглядит следующим образом: SELECT username, password FROM Users WHERE username = :username, а затем методом password_verify().

Теперь мой большой вопрос: безопасно ли вы получать хеш-пароль только с данным именем?

Я думаю, я слишком обеспокоен, правда?

ответ

2

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

+0

Благодарим за освобождение моих проблем! – jlmmns

0

Пока имена пользователей уникальные в базе данных, обязательно. Вы хотите, чтобы вы не стали жертвой какой-либо логики сопоставления, например. ваше имя пользователя «grég», но в базе данных получается «greg». Для этого ограничьте символы именем пользователя, которое может состоять из и/или использовать сопоставление _bin в столбце.

Кроме этого, ничего не изменится, если вы правильно выполните следующий шаг, сравнение паролей в PHP-коде.

+0

Спасибо за подсказку сортировки! Пока не думал об этом. – jlmmns

Смежные вопросы