[PHP] Revisione codice per registrazione

Discussione in 'PHP' iniziata da Gericx, 24 Ottobre 2018.

  1. Gericx

    Gericx Nuovo Utente

    Registrato:
    24 Ottobre 2018
    Messaggi:
    6
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Salve, mi sto esercitando con il lignuaggio php, ho creato questo codice per la registrazione di un account e volevo un pò di pareri da chi è più esperto nel campo.
    Vorrei sapere se va bene il codice che ho creato e cosa dovrei aggiungere per migliorarlo anche in ambito di sicurezza.
    PHP:
    <?php
    session_start
    ();

    include(
    "db_conn.php");

    $email=$_POST['email'];
    $password=$_POST['password'];

    $email=filter_var($email,FILTER_SANITIZE_EMAIL);
    $password=filter_var($password,FILTER_SANITIZE_STRING);

    //Verifico che i campi non siano vuoti

    if($email==null||$password==null){
        
    header("Location:home.html");
        exit();
    }else{
        
        
    //crypto la password
        
        
    $pass_crypt=password_hash($password,PASSWORD_DEFAULT);
        
        
    //Verifico se l'email già esiste
        
        
    $seleziona="SELECT email FROM utenti WHERE email='$email'";
        
    $query=mysqli_query($conn,$seleziona);
        
    $row=mysqli_num_rows($query);
        
        if(
    $row==0){
        
        
    $query_inserisci="INSERT INTO utenti (email, password) VALUES ('$email', '$pass_crypt')";
        
    mysqli_query($conn,$query_inserisci);
        
        
    $_SESSION['user']=$email;
        
    $_SESSION['password']=$pass_crypt;
        
        }else{
            
    header("Location:home.html");
            exit();
        }
    }
    ?>
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    973
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Dev Full Stack
    Località:
    IT/SW
    Dopo analisi il risultato:
    La riga 32 di index.php richiama una query SQL creata utilizzando l'input proveniente da una fonte non attendibile. Questa chiamata potrebbe consentire a un utente malintenzionato di modificare il significato dell'istruzione o di eseguire comandi SQL arbitrari.
     
  3. Gericx

    Gericx Nuovo Utente

    Registrato:
    24 Ottobre 2018
    Messaggi:
    6
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Quindi dovrei inserire la connessione al database direttamente in questo file per avere una maggiore sicurezza?
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    973
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Dev Full Stack
    Località:
    IT/SW
    NO, la query così formattata non è corretta.
     
  5. Gericx

    Gericx Nuovo Utente

    Registrato:
    24 Ottobre 2018
    Messaggi:
    6
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Come dovrei fare? puoi farmi un esempio?
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    973
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Dev Full Stack
    Località:
    IT/SW
  7. Gericx

    Gericx Nuovo Utente

    Registrato:
    24 Ottobre 2018
    Messaggi:
    6
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    Grazie darò un'occhiata, volevo sapere anche un'altra cosa, per criptare la password è meglio utilizzare password_hash, oppure md5?
     
  8. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    973
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Dev Full Stack
    Località:
    IT/SW
    nessuno dei due... Utilizza algoritmi almeno a 256 aggiungendo dei salt in posizione randomica.
    Evita lo store della password in md5 e sha1 -> Weak crypt.
     
  9. Gericx

    Gericx Nuovo Utente

    Registrato:
    24 Ottobre 2018
    Messaggi:
    6
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Maschio
    C'è una guida per come fare?
     
Sto caricando...

Condividi questa Pagina