Yii2 translated behavior
Это расширение поможет вам быстро добавить возможность перевода вашего сайта.
Это расширение поможет вам быстро добавить возможность перевода вашего сайта.
Многие разработчики знают, что хранить пароль открытым текстом нельзя, но многие до сих пор считают безопасным
использование для хеширования паролей md5
или sha1
. Раньше упомянутых алгоритмов было достаточно, но современное
оборудование позволяет подобрать эти хеши очень быстро, методом простого перебора.
Для того, чтобы обеспечить повышенную безопасность паролей ваших пользователей даже в худшем случае (ваше
приложение взломано), нужно использовать алгоритм шифрования, устойчивый к атаке перебором. Лучший вариант в текущий
момент bcrypt
. В PHP вы можете использовать хеши bcrypt
через функцию crypt.
Yii обеспечивает две вспомогательные функции, которые упрощают использование функции crypt
для генерации и проверки
пароля.
Когда пользователь задаёт пароль (например во время регистрации), пароль должен быть захеширован:
$hash = Yii::$app->getSecurity()->generatePasswordHash($password);
Хеш можно связать с соответствующим атрибутом модели, так чтобы он сохранялся в базе для последующего использования.
Когда пользователь попытается войти, отправленный пароль должен быть хеширован и сравнён с ранее сохранённым хешем:
if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
// всё хорошо, пользователь может войти
} else {
// неправильный пароль
}