sql >> Database teknologi >  >> RDS >> Mysql

Hvilken metode er bedre til at validere brugeroplysninger?

Sagen er... Du skal opbevare saltet, hashed adgangskoder i databasen. Da disse er individuelt saltede pr. bruger/adgangskode kan du ikke slå dem op direkte med password = ? , fordi du ikke kender saltet og derfor ikke kan beregne den matchende hash på forhånd. Hvis du gør dette ordentligt, skal du hent først brugerregistreringen efter brugernavn, og valider derefter kodeords-hashen ved hjælp af den hentede salt/hash. Pseudokode:

$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'];

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



  1. Dvalebrug af PostgreSQL-sekvens påvirker ikke sekvenstabellen

  2. SQL ORDER BY flere kolonner

  3. Sådan opretter du en ikke-nul kolonne i en visning

  4. Vælg MYSQL rækker, men rækker i kolonner og kolonner i rækker