sql >> Databasteknik >  >> RDS >> Mysql

Grundläggande säkerhet, PHP mySQl

Några saker här:

  1. Du krypterar det inte riktigt, du hashar det. Lätt för nybörjare att förvirra, men ville bara få det ur vägen.

  2. Använd inte MD5, det är bara inte en särskilt säker hash. Använd en av SHA-varianterna istället om möjligt.

  3. Haha inte bara lösenordet, du kommer att vilja "salta" det också. I grund och botten innebär detta att lägga till en slumpmässig sträng till lösenordet innan du hash det, och att lagra den slumpmässiga strängen någonstans där du kan hämta den senare (så att du kan validera hashen när användaren anger sitt lösenord). Detta hjälper till att förhindra attacker från förberäknade ordbok.

När det gäller att generera lösenordet tror jag att du är på rätt spår - jag skulle bara generera det när de skapar sitt konto, maila det till dem, sedan hasha det och lagra hash (och ett slumpmässigt salt) i användarposten i DB.



  1. verify_queryable_inventory returnerade ORA-20008:Timeout

  2. Varför returnerar CONNECT BY LEVEL i en tabell extra rader?

  3. Har problem med UnixODBC, FreeTDS och PyODBC

  4. MySQL räkna komplexa frågeresultat?