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

Basissicherheit, PHP mySQL

Ein paar Dinge hier:

  1. Sie verschlüsseln es nicht wirklich, Sie hashen es. Leicht zu verwirrende Sache für Neulinge, aber ich wollte das nur aus dem Weg räumen.

  2. Verwenden Sie nicht MD5, es ist einfach kein sehr sicherer Hash. Verwenden Sie stattdessen nach Möglichkeit eine der SHA-Varianten.

  3. Hashen Sie das Passwort nicht nur, Sie sollten es auch „salzen“. Im Grunde geht es darum, dem Passwort eine zufällige Zeichenfolge hinzuzufügen, bevor Sie es hashen, und diese zufällige Zeichenfolge irgendwo zu speichern, wo Sie sie später abrufen können (damit Sie den Hash validieren können, wenn der Benutzer sein Passwort eingibt). Dies hilft, vorberechnete Wörterbuchangriffe zu verhindern.

Was das Generieren des Passworts angeht, denke ich, dass Sie auf dem richtigen Weg sind - ich würde es einfach generieren, wenn sie ihr Konto erstellen, es ihnen per E-Mail senden, es dann hashen und den Hash (und ein zufälliges Salt) im Benutzerdatensatz in speichern DB.