- Om du vill ha säkerhet, DU. MÅSTE. ANVÄNDA SIG AV. HTTPS. Med ett ordentligt, icke-självsignerat intyg. Vad du än gör kommer identiteter som är autentiserade i okrypterad kommunikation vara triviala att stjäla. (Observera lösenordet, angriparen kan helt enkelt stjäla sessionskakan som medföljer varje begäran.)
- Hashing är värdelöst i sig, du måste salta det. (Detta är egentligen inte relaterat till autentisering - det är ett andra lager av försvar för fallet när någon stjäl din databas. Vilket förmodligen kommer att hända förr eller senare om du blir ett lovande mål.) Använd bcrypt med långt slumpmässigt salt per användare, sha* är osäker eftersom den är för snabb.
- Använd metoder som redan används av stora, säkerhetsmedvetna projekt. Dessa metoder har till viss del stått emot tidens tand. Det finns utmaningssvarsbaserade metoder som undviker att skicka lösenordet i någon form, men krypto är svårt, och det är väldigt enkelt att implementera säkra algoritmer på ett osäkert sätt. Använd ett bra säkerhetsramverk (t.ex. PHPass ), lita inte på kod som inte är allmänt använd.