⊗ppPmAuAHS 425 of 447 menu

Aggiunta del sale nell'autorizzazione

Ora dobbiamo modificare l'autorizzazione. Qui i cambiamenti saranno più sostanziali.

Non sarà più possibile verificare la correttezza della coppia login-password immediatamente, con una sola query. Perché: perché, per verificare la password, è necessario ottenere il suo hash salato, e il sale è memorizzato nel database ed è unico per ogni login.

Bisognerà prima ottenere il record solo per login, leggere il sale, "salare" la password inserita e confrontarla con la password salata dal database e solo, se coincidono, - autorizzare l'utente.

Si tenga presente che può succedere che il login sia digitato in modo errato, in questo caso la verifica della password non può essere effettuata, e si può immediatamente mostrare che l'autorizzazione non è possibile - i dati non sono corretti:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { // esiste un utente con questo login, ora bisogna verificare la password... } else { // non esiste un utente con questo login, mostriamo un messaggio } ?>

Aggiungiamo la verifica della password:

<?php $login = $_POST['login']; $query = "SELECT * FROM users WHERE login='$login'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); if (!empty($user)) { $salt = $user['salt']; // sale dal DB $hash = $user['password']; // password salata dal DB $password = md5($salt . $_POST['password']); // password salata dall'utente // Confrontiamo gli hash salati if ($password == $hash) { // tutto ok, autorizziamo... } else { // la password non corrisponde, mostriamo un messaggio } } else { // non esiste un utente con questo login, mostriamo un messaggio } ?>

Per motivi di sicurezza all'utente di solito non viene comunicato cosa esatto non ha funzionato - il login o la password, per rendere più difficile l'indovinare le coppie login-password da parte degli hacker. Viene semplicemente mostrato un messaggio che la coppia login-password non è corretta o qualcosa del genere.

Implementate l'autorizzazione descritta sopra con la password salata. Provate a registrarvi, autenticatevi, assicuratevi che tutto funzioni.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta