sql >> Database >  >> RDS >> Mysql

Welke methode is beter om gebruikersreferenties te valideren?

Het punt is... Je wordt verondersteld gezouten, gehasht op te slaan wachtwoorden in de databank. Aangezien deze individueel gezouten zijn per gebruiker/wachtwoord, kunt u niet zoek ze direct op met password = ? , omdat je het zout niet kent en dus niet vooraf de bijpassende hash kunt berekenen. Als je dit goed doet, moet je moeten haal eerst het gebruikersrecord op gebruikersnaam op en valideer vervolgens de wachtwoordhash met behulp van de opgehaalde salt/hash. Pseudocode:

$user = fetch_from_database($_POST['username']);

if (!$user) {
    throw new Exception("User doesn't exist");
}

if (!password_verify($_POST['password'], $user['password_hash'])) {
    throw new Exception('Invalid password');
}

echo 'Welcome ', $user['name'];

Zie http://php.net/password_hash , http://php.net/password_verify .



  1. Hoe db-verbindingen op de server te beheren?

  2. IN-clausule in mysql nodejs

  3. Probleem met tekencodering met PHP Simple HTML DOM Parser

  4. SQL - WHERE-voorwaarde op SUM()