[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.343
91
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.203
207
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0

Discussioni simili