Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Senden von Passwörtern über das Internet

  1. Wenn Sie Sicherheit wollen, SIE. MUSS. BENUTZEN. HTTPS. Mit einem richtigen, nicht selbstsignierten Zertifikat. Was auch immer Sie tun, Identitäten, die in unverschlüsselter Kommunikation authentifiziert werden, sind leicht zu stehlen. (Kümmern Sie sich nicht um das Passwort, der Angreifer kann einfach das Sitzungscookie stehlen, das mit jeder Anfrage bereitgestellt wird.)
  2. Hashing ist an sich wertlos, Sie müssen es salzen. (Dies hat nicht wirklich mit der Authentifizierung zu tun – es ist eine zweite Verteidigungsebene für den Fall, dass jemand Ihre Datenbank stiehlt. Was wahrscheinlich früher oder später passieren wird, wenn Sie ein vielversprechendes Ziel werden.) Verwenden Sie bcrypt mit langem zufälligem Salt pro Benutzer, sha* ist unsicher, weil es zu schnell ist.
  3. Verwenden Sie Methoden, die bereits von großen, sicherheitsbewussten Projekten verwendet werden. Diese Methoden haben bis zu einem gewissen Grad den Test der Zeit bestanden. Es gibt Challenge-Response-basierte Methoden, die das Senden des Passworts in irgendeiner Form vermeiden, aber Krypto ist schwierig und es ist sehr einfach, sichere Algorithmen auf unsichere Weise zu implementieren. Verwenden Sie ein gutes Sicherheits-Framework (z. B. PHPass ). ), verlassen Sie sich nicht auf Code, der nicht weit verbreitet ist.