[PHP] Verifica password per accesso ad area riservata

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno,
rieccomi qui. Sto aggiornando un po' di pagine per aggiornare tutto da MySql a MySqli.
Nel frattempo ho cambiato la codifica delle password degli utenti autorizzati ad accedere all'area riservata.
Nel codice scritto un paio di anni fa la codifica era sha1, adesso ho inserito alcuni utenti utilizzando password_hash.
Risultato: nella tabella con gli utenti in questione alcune password sono codificate in un modo, altri in un altro.
Allora ho cambiato il file di verifica che viene richiamato dopo aver inserito le credenziali di accesso con un doppio controllo.
Però non funziona con le nuove password (quelle inserite con password_hash).
Questa è la pagina di verifica:

PHP:
<?php session_start();

include 'connect3.php';


$username = $_POST['username'];
$pwd = $_POST['password'];

//sha1 cifra la password anche qui in questo modo corrisponde con quella del db
$password = sha1($pwd);

// qui invece ricavo la password con la nuova codifica
$hashedpassword = password_hash($pwd, PASSWORD_DEFAULT);



if (!$result = $connessione->query("SELECT * FROM utentibo WHERE userName = '$username' AND (password = '$password' OR password = '$hashedpassword')")) {
  echo "Errore della query: " . $connessione->error . ".";
  exit();
}else{
    // echo "e qui ancora bene"."<br>";
  // conteggio dei record
  if($result->num_rows > 0) {
    // conteggio dei record restituiti dalla query
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      $cod = $row['userName'];
      //$unico = $row['unico'];
      
      if ($cod == "") {
          $trovato = 0;
      }else{$trovato = 1;}

      /* Username e password corrette */
        if($trovato === 1) {
 
         /*Registro la sessione*/
        $_SESSION['autorizzato'];
 
        $_SESSION["autorizzato"] = sha1($cod + $unico);
 
        /*Registro il nome dell'utente*/
        $_SESSION['cod'] = $cod;
 
         /*Redirect alla pagina riservata*/
        echo '<script language=javascript>document.location.href="partenza.php"</script>';
 
        } else {
 
        /*Username e password errati, redirect alla pagina di login*/
        echo '<script language=javascript>document.location.href="index.php"</script>';
 
        }
    }
    // liberazione delle risorse occupate dal risultato
    $result->close();
  }
}
// chiusura della connessione
$connessione->close();



?>

Ovviamente qualcosa non va in quanto tutto si ferma su questa pagina senza alcun redirect...

Dove sbaglio?
Grazie
Maurizio
 

macus_adi

Utente Attivo
5 Dic 2017
1.320
88
48
IT/SW
Fai un doppio controllo, se hai un sistema ibrido..... controlla il match sia in sha1 che con password_hash.... Se trovi alemeno 1 record allora hai fatto bingo!
 
Ultima modifica:

Ettore Caputo

Nuovo Utente
16 Giu 2019
2
0
1

marino51

Utente Attivo
28 Feb 2013
3.001
173
63
Lombardia
credo che tu debba verificare la password leggendola dal db e confrontando le due stringhe con la funzione password_verify
generata nuovamente ogni volta, come fai nello script, differisce perché cambiano i parametri di generazione

ti conviene cambiare la logica, leggi dal db e confronti le psw ottenute ciascuna con il metodo specifico
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
F [PHP] Verifica utente presente nel DB PHP 13
Samuele Ronzani [PHP] Verifica se un dato esiste già PHP 1
S [PHP] Verifica dati tramite form e annullamento codice inserito PHP 7
MarcoGrazia [PHP] Verifica dell'input utente tramite funzione generica. PHP 0
M [PHP] Verifica formato data in tempo reale PHP 2
C verifica e invio ordine php PHP 19
P Verifica form solo con php senza javascript PHP 15
G php asincrono con ajax 2 campi di verifica PHP 1
M Cosa ne pensate del mio primo file PHP (verifica disponibilità stanze)? PHP 0
P Verifica form misto php e JS Javascript 2
P verifica codice php PHP 1
L Problemi form Pagina php HTML e CSS 2
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1
L Estrazione dati php Database 6
A Aiuto per pagina php PHP 0
E Php select option e ajax PHP 23
I Aiuto php Dependent Lookup PHP 0
T arretramento versione PHP... PHP 3
D problema php mysql PHP 1
D problema php mysql PHP 1
E Barra di avanzamento codice PHP PHP 4
G creazione menu a tendina e invio a pagina php PHP 1
A inserire variabile php colore in div html PHP 2
Z Video protetto con PHP PHP 0
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
I Eecuzione di javascript in ciclo foreach php. PHP 7
S Libreria PHP per creare file dwg o dxf PHP 0
A [cerco - retribuito] Sviluppatore Php freelance per progetti vari Offerte e Richieste di Lavoro e/o Collaborazione 2
L Google chart php mysql PHP 2
R Download file multipli da directory php PHP 0
F pagina dinamica PHP PHP 3
P Rimozione automatica url da sitemap.xml con PHP PHP 1
L php tinymce mi duplica la classe label PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
N file manager da php 5 a 7 PHP 15
M Utilizzare la funzione mysql_num_rows() in PHP 5 PHP 3
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
N Mysql_result per PHP 7 PHP 2
Emix Select concatenate php sql ajax PHP 2

Discussioni simili