Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelles sont les faiblesses de cette méthode d'authentification des utilisateurs ?

Faites-vous plaisir et utilisez une bibliothèque standard pour hacher vos mots de passe.

Étant donné que la sécurité a tendance à être beaucoup plus compliquée et avec plus de possibilités de bousillages invisibles que la plupart des programmeurs ne pourraient résoudre seuls, l'utilisation d'une bibliothèque standard est presque toujours l'option la plus simple et la plus sécurisée (sinon la seule).

La bibliothèque standard  :
Jetez un œil à :Cadre de hachage de mot de passe PHP portable :phppass et assurez-vous d'utiliser le CRYPT_BLOWFISH algorithme si possible.

exemple de code utilisant phpas (v0.2):

require('PasswordHash.php');

$pwdHasher = new PasswordHash(8, FALSE);

// $hash is what you would store in your database
$hash = $pwdHasher->HashPassword( $password );

// $hash would be the $hashed stored in your database for this user
$checked = $pwdHasher->CheckPassword($password, $hash);
if ($checked) {
    echo 'password correct';
} else {
    echo 'wrong credentials';
}

PHPass a été implémenté dans certains projets assez connus :

  • phpBB3
  • WordPress 2.5+ ainsi que bbPress
  • la version Drupal 7, (module disponible pour Drupal 5 &6)
  • autres

La bonne chose est que vous n'avez pas à vous soucier des détails, ces détails ont été programmés par des personnes expérimentées et examinés par de nombreuses personnes sur Internet.

Quoi que vous fassiez si vous optez pour le 'je le ferai moi-même, merci ' approche, n'utilisez pas MD5 plus . C'est un bon algorithme de hachage, mais complètement cassé pour des raisons de sécurité .

Actuellement, en utilisant crypt , avec CRYPT_BLOWFISH est la meilleure pratique.
CRYPT_BLOWFISH en PHP est une implémentation du hachage Bcrypt. Bcrypt est basé sur le chiffrement par bloc Blowfish, utilisant sa configuration de clé coûteuse pour ralentir l'algorithme.

Pour plus d'informations sur les schémas de stockage des mots de passe, vous pouvez également lire Jeff article de blog à ce sujet :Vous stockez probablement les mots de passe de manière incorrecte