Visualizzazione dei risultati da 1 a 7 su 7

Discussione: utilizzo md5

  1. #1
    Utente di HTML.it L'avatar di felpone
    Registrato dal
    Jun 2010
    Messaggi
    182

    utilizzo md5

    Salve,
    sto utilizzando la funzione md5 ma non riesco più ad effettuare login.
    Ho inserito la md5 sia in fase di inserimento in db che nella funzione di login prima di comparare le password.Posto il codice.

    Login
    Codice PHP:

    function effettua_login($username,$password) {
          
       
    $username=mysql_real_escape_string(trim($username));
        
    $password=mysql_real_escape_string(trim($password));
        
    $pass_encripted=md5($password);
        
       
        
    $rs=mysql_query("select nome,cognome,data_nascita from utenti where username='$username' and password='$pass_encripted' limit 1");
        if (!
    $rs) {
            if (
    DEBUG) {
                echo 
    mysql_errno(), "
    "
    ;
                echo 
    mysql_error();
            }
            exit;
        } 




    registrazione su db
    Codice PHP:

    function invia_dati() {
           
    $password=md5(mysql_real_escape_string(trim($_POST[password])));
           
         
    $sql="INSERT INTO utenti (nome,cognome,username,password,data_nascita,mail)
    VALUES
    ('
    $_POST[nome]','$_POST[cognome]','$_POST[username]','$password','$_POST[data_nascita]','$_POST[mail]')"

  2. #2
    prova a modificare questa riga:
    Codice PHP:
    $password=mysql_real_escape_string(trim(md5($_POST[password]))); 

  3. #3
    secondo me è il problema è invece gli apici mancanti alle chiavi degli array
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Essendo l'md5 un algoritmo alfanumerico di 32 caratteri non si ha bisogno dell'escape di sicurezza, che poi nella registrazione lo effettui solo sull'unico campo che non ne avrebbe bisogno (lol) trascurando gli altri vulnerabili



    Comunque prima di utilizzare l'md5 andava? Come verifichi il login e come vengono passate le variabili?

  5. #5
    Utente di HTML.it L'avatar di felpone
    Registrato dal
    Jun 2010
    Messaggi
    182
    Codice PHP:
    $utente=$autenticazione->effettua_login($_POST['username'],
         
    $_POST['password']); //verifica dati in post


    if(!(isset($utente[nome])))
    //if(count($utente)===1)//se utente[nome] non esiste significa che il login è andato male
            
    {
        
        
    header("Location: index.php?type=page&pid=6"); //torna al form di autenticazione 
    La funzione effettua_login è quella postta sopra.
    Prima dell utilizzo di md5 andava tutto bene.
    Dove mi consigli di utilizzare le funzioni real_escape e trim?

  6. #6
    in generale si utilizzano gli algoritmi di hashing per codificare i valori DENTRO il database così che se vi è un'accesso non autorizzato, l'attaccante non può far molto danno

    ovviamente l'md5 non offre più questo livello di sicurezza, direi che il minimo è utilizzare uno sha256 o, ancora meglio, uno sha512, tramite la funzione hash di php ( www.php.net/hash )

    detto questo, è importante che l'md5 lo effettui nello stesso identico modo sia in fase di registrazione sia in fase di login altrimenti, nel caso di caratteri speciali, come l'apice ad esempio, avresti risultati differenti per via del mysql_real_escape_string!

    infine, dire che non riesci ad effettuare il login è un po vago ... la query non ti da errore? hai provato a fare una select manualmente che estragga il record tramite nome utente e password in md5 (generata sempre da php)?
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it L'avatar di amosrm
    Registrato dal
    Nov 2012
    Messaggi
    120
    Non so se si può fare ma provo ad aggiungere altri quesiti .

    L utilizzo di md5 o sha512 codifica una parola senza poterla decriptare ? correggetmi !

    come viene gestita in caso di smarrimento o dimenticanza la
    procedure di recupero credenziali .
    Cosa è migliore fare
    1 update nel db con un codice provvisorio da passare all utente o
    2 salvare dentro il DB la parola in chiaro da trasmettere in caso di smarrimento .

    Me lo domando perchè utilizzando anche blow fish che cripta e decripta forse
    cè un metodo standard per evitare errori . !
    Certo le modalità da usare sono infinite soprattutto di questi tempi , ma chiedevo i metodi
    migliori per gestire l autenticazione ...

    Grazie Ric
    #

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.