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

Envoi de mots de passe sur le Web

  1. Si vous voulez la sécurité, VOUS. DOIT. UTILISER. HTTPS. Avec un certificat approprié et non auto-signé. Quoi que vous fassiez, les identités authentifiées dans une communication non cryptée seront faciles à voler. (Peu importe le mot de passe, l'attaquant peut simplement voler le cookie de session fourni avec chaque requête.)
  2. Le hachage ne vaut rien en soi, vous devez le saler. (Ce n'est pas vraiment lié à l'authentification - c'est une deuxième couche de défense pour le cas où quelqu'un vole votre base de données. Ce qui arrivera probablement tôt ou tard si vous devenez une cible prometteuse.) Utilisez bcrypt avec un long sel aléatoire par utilisateur, sha* n'est pas sûr car il est trop rapide.
  3. Utilisez des méthodes déjà utilisées par de grands projets soucieux de la sécurité. Ces méthodes ont, dans une certaine mesure, résisté à l'épreuve du temps. Il existe des méthodes basées sur le défi-réponse qui évitent d'envoyer le mot de passe sous quelque forme que ce soit, mais la cryptographie est difficile et il est très facile d'implémenter des algorithmes sécurisés de manière non sécurisée. Utilisez un bon cadre de sécurité (par exemple, PHPass ), ne vous fiez pas à du code qui n'est pas largement utilisé.