Spec-Zone.ru › Yii 2.0

Работа с паролями

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

Для повышения безопасности паролей пользователей, даже в самом худшем случае (если ваш приложение подверглось взлому), необходимо использовать алгоритм хэширования, устойчивый к атакам методом грубой силы. Наилучший текущий выбор — bcrypt. В PHP вы можете создать хэш bcrypt с помощью функции crypt. Yii предоставляет две вспомогательные функции, которые делают использование crypt для безопасного создания и проверки хэшей проще.

Когда пользователь впервые предоставляет пароль (например, при регистрации), пароль необходимо хэшировать:

$hash = Yii::$app->getSecurity()->generatePasswordHash($password);

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

Когда пользователь пытается войти в систему, предоставленный пароль необходимо проверить по отношению к ранее хэшированному и сохранённому паролю:

if (Yii::$app->getSecurity()->validatePassword($password, $hash)) {
    // all good, logging user in
} else {
    // wrong password
}

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-security-passwords.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API