Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    non e' mysql_connect che decide il tipo di password, ma il CLIENT.

    Ho fatto prove con entrambi mysqli e mysql... esempio per chiarezza:
    codice:
    $mysqli = new mysqli('localhost','pippo1', 'mammamia','test');
    $conn1 = mysql_connect('localhost','pippo1', 'mammamia');
    
    $mysqli = new mysqli('localhost','pippo', 'mammamia','test');
    $conn1 = mysql_connect('localhost','pippo', 'mammamia');
    lo user pippo ha password "mammamia" memorizzata con OLD_PASSWORD() 16 digit

    pippo1 ha password "mammamia" memorizzata con PASSWORD() 40 digit.

    Su php5 funzionano tutte indifferentemente. su php4 funziona solo lo user pippo.

    Avevo fatto questo accrocchio perche' pensavo di dover cambiare la connessione a seconda della versione di php. Invece no, con php5 va benissimo anche OLD_PASSWORD(). Il che mi da' da pensare che php5 mandi entrambe le passord sia a 16 che 40 digit, oppure piu' semplicemente mandi la password in chiaro. Sara poi mysql in base a come e' stata memorizzata a decidere quale algoritmo di hash utilizzare.

    Sarebbe interessante poterlo verificare sul codice di mysql o di php5

    Lo puoi provare velocemente anche con phpmyadmin... fai due user uno con pwd 16 digit e uno a 40 ... entrerai tranquillamente con entrambi gli user.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  2. #12
    con che versione di PHP 5 hai fatto i test? Mi sta venedo il dubbio che ci sia un nesso tra questo comportamento ed il fatto che in PHP 5.0.3 abbiano unificato le due libbrerie libmysqli.dll e libmysql.dll

  3. #13
    Ho dimenticato di precisare che nel caso si metta nel file my.ini la direttiva --> "old_password" tutte le password saranno memorizzate con OLD_PASSWORD() da qualunque versione di CLIENT provengano. Ma se la password viene "UPDATATA" con PASSWORD() "quella" connessione non sara' piu' raggiungibile da un CLIENT 3.x.x

    Di qui la convinzione che php4 mandi un hash 16, e invece php5 la password in chiaro oppure entrambi gli hash.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #14
    [supersaibal]Originariamente inviato da Gianni_T
    con che versione di PHP 5 hai fatto i test? Mi sta venedo il dubbio che ci sia un nesso tra questo comportamento ed il fatto che in PHP 5.0.3 abbiano unificato le due libbrerie libmysqli.dll e libmysql.dll [/supersaibal]
    Al momento ho rimesso la 5.0.4 ma lo stesso era con la 5.0.4-dev e la 5.0.3.... la versione 4 sono rimasto con la 4.3.10

    La differenza principale nella versione 5.0.4 e' che hanno aggiunto in apache il path per raggiungere php.ini che ora puo' stare tranquillamente nel suo direttorio, e la cosa funziona anche con la 5.0.3. Almeno non si deve piu' fare alchimie di file nel direttorio di windows. Stessa soluzione per il my.ini d'altronde...

    Non ho verificato, ma lo faro', quella unificazione che dici.. delle due librerie...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #15
    Ok ... facile verifica la mia.

    La prima versione di php5 che ho provato e' la 5.0.3. Quindi nulla so della situazione precedente. Evito sempre le prime uscite di release perche' ormai e' consolidato il fatto che non durano a lungo e subiscono pesanti e immediate modifiche appena un po' di gente inizia a testarle. Stesso discorso per mysql... la prima versione di 4.1 testata e' la 4.1.7 ed ora ho messo la 4.1.12.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #16
    Sono andato a spulciare i sorgenti della libbreria libmysql.dll.

    Questi sono i passi:

    1) il client si collega al server
    2) il server risponde inviando alcune info tipo la versione e le sue caratteristiche supportate. Il server invia anche un codice generato casualmente.
    3) il client prepara i dati dell'utente per l'autenticazione. Per la password: a seconda delle info mandate dal server si procede a creare l'hash della password (16 o 40 cifre) e a fare uno scramble con il codice casuale inviato dal server (credo si tratti di uno XOR)
    4) il client invia i dati utente al server

    probabilmente la vecchia libbreria libmysql.dll distribuita con versioni di PHP precedenti alla 5.0.3 (accanto a libmysqli.dll che adesso non esiste più) non gestiva la doppia conversione in hash.




    P.S. adesso mi tocca fare un po' di modifiche all'articolo...

  7. #17
    Perfetto .... sicuramente e' cosi' perche' altrimenti l'alternativa sarebbe appunto di mandare dal client la pwd in chiaro oppure mandarle con entrambi gli hash e lasciar decidere al server.

    Non mi quadra pero' il punto 3)... mysql NON puo' conoscere a priori quale user si vuole connettere, e quindi NON puo' mandarmi a dire in qualche modo quale hash utilizzare per la futura connessione. Deve esserci qualcos'altro... Io posso avere indifferentemente entrambi i tipi di password memorizzate nei record su mysql.user

    Se ho tempo (difficile) mi guardo il sorgente....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #18
    non ho parlato di info sull'utente. Il server manda info su se stesso, ad es. la versione ed altre informazioni di carattere globale. E' da queste che il client decide che tipo di hash inviare.



  9. #19
    [supersaibal]Originariamente inviato da Gianni_T
    non ho parlato di info sull'utente. Il server manda info su se stesso, ad es. la versione ed altre informazioni di carattere globale. E' da queste che il client decide che tipo di hash inviare.
    [/supersaibal]
    Come fa a sapere il CLIENT che lo user "pippo" e' memorizzato sul server a 16 invece che 40 digit ?

    Come fa il SERVER a sapere che il CLIENT gli mandera' lo user pippo?

    Evidentemente c'e' un step di dialogo dove si scambiano questa info, oppure il CLIENT manda in chiaro od entrambi gli HASH...

    Non c'e' santo...

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #20
    Utente di HTML.it L'avatar di hyb
    Registrato dal
    Aug 2003
    Messaggi
    424
    beh è venuuta fuori alla fine una cosa che puo essere utile per tutti
    C'è chi si mette degli occhiali da sole, per avere più carisma e sintomatico mistero.

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.