[PHP] Revisione codice per registrazione

  • Creatore Discussione Creatore Discussione Gericx
  • Data di inizio Data di inizio

Gericx

Nuovo Utente
24 Ott 2018
6
0
1
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();
    }
}
?>
 
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.
 
Quindi dovrei inserire la connessione al database direttamente in questo file per avere una maggiore sicurezza?
 
Grazie darò un'occhiata, volevo sapere anche un'altra cosa, per criptare la password è meglio utilizzare password_hash, oppure md5?
 
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.
 

Discussioni simili