Back to top

Autore Topic: Come Joomla registra password  (Letto 21856 volte)

Offline CarloG

  • Nuovo arrivato
  • *
  • Post: 10
    • Mostra profilo
Come Joomla registra password
« il: 15 Feb 2009, 16:14:39 »
Mi interessa sapere quale crittografia utilizza Joomla per generare la password; ho provato md5 ma, dato un valore, mi sembra diverso il risultato generato con http://md5encryption.com/ da quello registrato sulla tabella jos_users; che hash viene usato?
Grazie
Carlo
ps. mi serve per popolare la tabella utenti con un file esterno.

Offline copesc

  • Appassionato
  • ***
  • Post: 500
    • Mostra profilo
Re: Come Joomla registra password
« Risposta #1 il: 15 Feb 2009, 17:34:21 »
Extensioni e Template per Joomla

Offline CarloG

  • Nuovo arrivato
  • *
  • Post: 10
    • Mostra profilo
Re: Come Joomla registra password
« Risposta #2 il: 15 Feb 2009, 18:34:44 »
ciao copesc,
ma come puoi immaginare devo registrare la password esattamente come la registrerebbe joomla, in modo che, quando un utente fa il login, joomla lo riconosca:
che lunghezza ha il salt?
e' un md5 semplice o doppio (come dal link suggeritomi)?
altre caratteristiche?
grazie anticipate
Carlo

Offline Garo73

  • Nuovo arrivato
  • *
  • Post: 4
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #3 il: 20 Mag 2009, 10:07:38 »
Anche io ho lo stesso problema e non so come risolvere.
CarloG hai trovato il metodo????

Offline moise

  • Nuovo arrivato
  • *
  • Post: 10
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #4 il: 21 Lug 2009, 20:15:00 »
http://blog.phil-taylor.com/2008/08/18/joomla-15x-password-hash-generator/#comments

prova qui io ho risolto, ma non riesco a generare il campo activation

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #5 il: 26 Lug 2011, 18:17:03 »
Risposta molto in ritardo, ma siccome ho avuto lo stesso problema e ho risolto l'arcano, posto la soluzione, non sia mai che a qualcuno serva. Va bene anche per 1.6
Codice: [Seleziona]
<?php
    $pass
="password scelta dall'utente joomla";
    function 
PasswordCasuale($lunghezza=32){
        
$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz1234567890";
        
$password "";
        for(
$i 0$i<$lunghezza$i++){
            
$password $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
        }
    return 
$password;
    }
    
$salt=PasswordCasuale();
    
$password=md5($pass.$salt).":".$salt;
    echo 
$password;
?>

Clastiweb

Offline bertoandrea86

  • Appassionato
  • ***
  • Post: 433
  • Sesso: Maschio
  • siti coupongratuiti.com / gruppirock.it
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #6 il: 29 Lug 2011, 18:46:00 »
Risposta molto in ritardo, ma siccome ho avuto lo stesso problema e ho risolto l'arcano, posto la soluzione, non sia mai che a qualcuno serva. Va bene anche per 1.6
Codice: [Seleziona]
<?php
    $pass
="password scelta dall'utente joomla";
    function 
PasswordCasuale($lunghezza=32){
        
$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz1234567890";
        
$password "";
        for(
$i 0$i<$lunghezza$i++){
            
$password $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
        }
    return 
$password;
    }
    
$salt=PasswordCasuale();
    
$password=md5($pass.$salt).":".$salt;
    echo 
$password;
?>


Molto utile anche per il futuro!
Thanks :)

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #7 il: 01 Ago 2011, 16:45:43 »
dato che serve anche a me questa cosa...come faccio a popolare il db utenti da un file esterno?

Offline bertoandrea86

  • Appassionato
  • ***
  • Post: 433
  • Sesso: Maschio
  • siti coupongratuiti.com / gruppirock.it
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #8 il: 01 Ago 2011, 19:32:12 »
dato che serve anche a me questa cosa...come faccio a popolare il db utenti da un file esterno?
???

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #9 il: 02 Ago 2011, 10:18:22 »
Dipende da che tipo di file è e dai dati che hai a disposizione. Se hai i dati già in una tabella a parte è molto più comodo altrimenti il primo passo è lavorare sul file che hai a disposizione per inserire tutti i dati in una tabella supplementare. Supponiamo che sia un file di testo dove stanno scritti i dati principale degli utenti (name, username, email, password); se ogni utente occupa una riga diversa ti va ancora bene perchè con un editor di testo tipo notepad++ puoi mettere una serie di caratteri davanti ad ogni riga, tipo XXXXX e poi usare la funzione explode di php per avere un array dove ogni elemento contiene i dati di un utente. Poi ci devi lavorare ancora per separare i dati per ogni riga. Insomma è un  po' macchinoso.
Una volta che hai tutti i dati su una tabella supplementare devi scorrerli e fare un insert nella tabella jos_users (ma anche nella tabella jos_user_usergroup_map) osservando bene com'è strutturato il database di Joomla. Se invece non hai a disposizione la password dell'utente potresti crearla usando la funzione PasswordCasuale con una lunghezza che decidi tu. L'importante è registrare le password in chiaro su una tabella supplementare temporanea altrimenti non puoi recuperarle, oppure inviare una email ad ogni insert per fornire la password all'utente.
Queste sono indicazioni di massima, anche il codice per creare le password è generalizzato, poi bisogna vedere ogni singolo caso.
« Ultima modifica: 02 Ago 2011, 10:20:45 da giancarlo75 »
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #10 il: 02 Ago 2011, 11:38:26 »
Dipende da che tipo di file è e dai dati che hai a disposizione. Se hai i dati già in una tabella a parte è molto più comodo altrimenti il primo passo è lavorare sul file che hai a disposizione per inserire tutti i dati in una tabella supplementare. Supponiamo che sia un file di testo dove stanno scritti i dati principale degli utenti (name, username, email, password); se ogni utente occupa una riga diversa ti va ancora bene perchè con un editor di testo tipo notepad++ puoi mettere una serie di caratteri davanti ad ogni riga, tipo XXXXX e poi usare la funzione explode di php per avere un array dove ogni elemento contiene i dati di un utente. Poi ci devi lavorare ancora per separare i dati per ogni riga. Insomma è un  po' macchinoso.
Una volta che hai tutti i dati su una tabella supplementare devi scorrerli e fare un insert nella tabella jos_users (ma anche nella tabella jos_user_usergroup_map) osservando bene com'è strutturato il database di Joomla. Se invece non hai a disposizione la password dell'utente potresti crearla usando la funzione PasswordCasuale con una lunghezza che decidi tu. L'importante è registrare le password in chiaro su una tabella supplementare temporanea altrimenti non puoi recuperarle, oppure inviare una email ad ogni insert per fornire la password all'utente.
Queste sono indicazioni di massima, anche il codice per creare le password è generalizzato, poi bisogna vedere ogni singolo caso.


wow...ti ringrazio tantissimo cercherò di trarre frutto da questo tuo aiuto... ;)

mau_develop

  • Visitatore
Re:Come Joomla registra password
« Risposta #11 il: 02 Ago 2011, 12:58:43 »
L'importante è registrare le password in chiaro su una tabella supplementare temporanea altrimenti non puoi recuperarle
-----------------------------------------------------
questo è importantissimo farlo, altrimenti come fai a fare qs:
http://forum.joomla.it/index.php/topic,141257.0.html

SOprattutto registrare anche temporaneamente pw in chiaro è fuori da ogni netiquette e regola di privacy.
Se io sapessi che qualcuno registra la mia pw in chiaro gli spazzolo il sito così impara a non mettere a rischio gli user specialmente se al profilo sono legati dati privati.

M.

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #12 il: 02 Ago 2011, 13:31:35 »
Ammesso che non si possa fare in modo che gli utenti si scelgano da soli le password rimane un po' un problema che bisogna pensare bene a come risolvere. Io salvo le password in una variabile di sessione che viene cancellata dalla stessa pagina che la mostra, subito dopo averla richiamata.
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #13 il: 02 Ago 2011, 14:01:48 »
Dipende da che tipo di file è e dai dati che hai a disposizione. Se hai i dati già in una tabella a parte è molto più comodo altrimenti il primo passo è lavorare sul file che hai a disposizione per inserire tutti i dati in una tabella supplementare. Supponiamo che sia un file di testo dove stanno scritti i dati principale degli utenti (name, username, email, password); se ogni utente occupa una riga diversa ti va ancora bene perchè con un editor di testo tipo notepad++ puoi mettere una serie di caratteri davanti ad ogni riga, tipo XXXXX e poi usare la funzione explode di php per avere un array dove ogni elemento contiene i dati di un utente. Poi ci devi lavorare ancora per separare i dati per ogni riga. Insomma è un  po' macchinoso.
Una volta che hai tutti i dati su una tabella supplementare devi scorrerli e fare un insert nella tabella jos_users (ma anche nella tabella jos_user_usergroup_map) osservando bene com'è strutturato il database di Joomla. Se invece non hai a disposizione la password dell'utente potresti crearla usando la funzione PasswordCasuale con una lunghezza che decidi tu. L'importante è registrare le password in chiaro su una tabella supplementare temporanea altrimenti non puoi recuperarle, oppure inviare una email ad ogni insert per fornire la password all'utente.
Queste sono indicazioni di massima, anche il codice per creare le password è generalizzato, poi bisogna vedere ogni singolo caso.


Io devo prendere solo i dati di un utente...io faccio un controllo su un database e mi prendo i dati di un solo utente...a questo punto tecnicamente cosa mi conviene fare?

Offline jeckodevelopment

  • Administrator
  • Instancabile
  • *****
  • Post: 5695
  • Sesso: Maschio
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #14 il: 02 Ago 2011, 14:31:07 »
ho fatto delle ricerche in JED (anche per altri motivi) ed ho trovato quest'estensione... vedi se può esserti utile
http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/3444

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #15 il: 02 Ago 2011, 15:58:54 »
Ma scusa, se è un solo utente non ti conviene inserirlo manualmente dal backend e poi passargli la password per email?
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #16 il: 02 Ago 2011, 16:09:05 »
Ma scusa, se è un solo utente non ti conviene inserirlo manualmente dal backend e poi passargli la password per email?
No allora forse non mi sono spiegato bene...nel momento in cui l'utente si logga, io devo andare a verificare su un database grandissimo se c'è (per questo c'è una classe java ecc ma non è questo che è importante per questo tutto ok), poi nel momento in cui ho trovato l'utente (che già ha una sua password) devo farlo loggare al sito

Offline jeckodevelopment

  • Administrator
  • Instancabile
  • *****
  • Post: 5695
  • Sesso: Maschio
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #17 il: 02 Ago 2011, 16:09:51 »
@giancarlo75
perché ottenuta la procedura con un utente, si può ripetere su n utenti no?  :P

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #18 il: 02 Ago 2011, 16:11:23 »
@giancarlo75
perché ottenuta la procedura con un utente, si può ripetere su n utenti no?  :P
ecco esatto...ps: grazie per il link che mi hai passato...

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #19 il: 02 Ago 2011, 16:21:57 »
ho fatto delle ricerche in JED (anche per altri motivi) ed ho trovato quest'estensione... vedi se può esserti utile
http://extensions.joomla.org/extensions/access-a-security/authentication-cloud-based/3444
Ho visto come fa e sono riuscito a permettere l'autenticazione, solo che c'è una cosa che non mi quadra: nel momento in cui permetto il login dell'utente, esso viene registrato sul db locale di joomla. Se dopo però cerco di rientrare nel sito joomla con altre credenziali va a vedere sempre quell'utente? come è possibile? vede l'indirizzo ip?

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #20 il: 02 Ago 2011, 16:47:28 »
Non ci ho capito niente ma sicuramente l'ip non è da considerare, prova a cancellare i cookie tra logout e login, dubito però che non sia nemmeno quello. Ma alla fine cosa vorresti fare, un bridge tra due siti di cui uno joomla e l'altro no?
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #21 il: 02 Ago 2011, 18:02:20 »
Non ci ho capito niente ma sicuramente l'ip non è da considerare, prova a cancellare i cookie tra logout e login, dubito però che non sia nemmeno quello. Ma alla fine cosa vorresti fare, un bridge tra due siti di cui uno joomla e l'altro no?
quello che io vorrei fare è semplicemente permettere il login a utenti esterni, (quindi prendendoli da un db esterno) e seguendo quel plugin ci sono riuscito...solo che se provo a rientrare nel sito come un altro utente mi vede sempre come il primo utente che ho loggato...

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #22 il: 02 Ago 2011, 19:37:21 »
Prima di tutto controlla la tabella jos_users per vedere se il plugin l'ha popolata con i dati estratti dall'altro database o no. Secondo me non lo ha fatto perchè lavora diversamente. Comunque controlla se ha inserito dei dati in jos_users soprattutto che non si ripetano (username e email devono essere univoci).
Una prova da fare subito è eseguire il logout, cancellare tutti i dati di navigazione ed eseguire il login con un altro username, per vedere se fa ancora quel difetto, se non lo fa più il problema non sussiste o comunque è molto meno grave perchè è legato ai cookie e si potrebbe risolvere eliminando il cookie di sessione al logout.
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #23 il: 02 Ago 2011, 19:47:25 »
Prima di tutto controlla la tabella jos_users per vedere se il plugin l'ha popolata con i dati estratti dall'altro database o no. Secondo me non lo ha fatto perchè lavora diversamente. Comunque controlla se ha inserito dei dati in jos_users soprattutto che non si ripetano (username e email devono essere univoci).
Una prova da fare subito è eseguire il logout, cancellare tutti i dati di navigazione ed eseguire il login con un altro username, per vedere se fa ancora quel difetto, se non lo fa più il problema non sussiste o comunque è molto meno grave perchè è legato ai cookie e si potrebbe risolvere eliminando il cookie di sessione al logout.
grazie mille!!!

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #24 il: 04 Ago 2011, 18:57:34 »
Sono riuscito a fare tutto...tranne un'ultima cosa, salvare la password del mio utente, cioè una volta che l'ho identificato e lo inserisco nel db joomla, come faccio a inserire anche la sua password? esiste un campo response->password?

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #25 il: 04 Ago 2011, 19:51:38 »
Joomla salva la password solo nel campo password della tabella jos_users, ma non la salva in chiaro, devi prima convertirla con il codice che avevo postato.
Comunque tu registra gli utenti una sola volta al primo login, non a tutti i login.
« Ultima modifica: 04 Ago 2011, 19:53:54 da giancarlo75 »
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #26 il: 04 Ago 2011, 21:00:53 »
Joomla salva la password solo nel campo password della tabella jos_users, ma non la salva in chiaro, devi prima convertirla con il codice che avevo postato.
Comunque tu registra gli utenti una sola volta al primo login, non a tutti i login.
sisi li registro solo al primo login. ho guardato quel codice ma non riesco a capire dov'è che la va a salvare!!! vedo un echo alla fine che stampa ma dove la salva? in password? e password non andrebbe messo in qualche campo del db joomla?

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #27 il: 05 Ago 2011, 09:46:43 »
Citazione
<?php
    $pass
="password scelta dall'utente joomla";
    function
PasswordCasuale($lunghezza=32){
       
$caratteri_disponibili ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz1234567890";
       
$password = "";
        for(
$i = 0; $i<$lunghezza; $i++){
           
$password = $password.substr($caratteri_disponibili,rand(0,strlen($caratteri_disponibili)-1),1);
        }
    return
$password;
    }
   
$salt=PasswordCasuale();
   
$password=md5($pass.$salt).":".$salt;
    echo
$password;
?>
Questo codice prende la password come la digita l'utente nella variabile $pass, e la trasforma nella corrispondente password come la vuole Joomla nella variabile $password. Poi siccome è un esempio qui la stringa viene stampata sulla pagina ma in realtà puoi farne quello che vuoi. Togli l'echo e fai un insert o un update nel database per inserirla. Anche la variabile $pass che qui viene scritta direttamente sulla pagina è quasi certo che arrivi da un modulo, quindi $pass = $_POST['password_utente'];
Clastiweb

Offline flava137

  • Nuovo arrivato
  • *
  • Post: 28
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #28 il: 08 Ago 2011, 19:14:38 »
Questo codice prende la password come la digita l'utente nella variabile $pass, e la trasforma nella corrispondente password come la vuole Joomla nella variabile $password. Poi siccome è un esempio qui la stringa viene stampata sulla pagina ma in realtà puoi farne quello che vuoi. Togli l'echo e fai un insert o un update nel database per inserirla. Anche la variabile $pass che qui viene scritta direttamente sulla pagina è quasi certo che arrivi da un modulo, quindi $pass = $_POST['password_utente'];
Il fatto è che tutti gli altri dati dell'utente li metto in response->..., come ho visto fare nel plugin che mi hai consigliato di guardare...response non ha un campo anche per la password?

Offline giancarlo75

  • Esploratore
  • **
  • Post: 160
    • Mostra profilo
Re:Come Joomla registra password
« Risposta #29 il: 09 Ago 2011, 17:05:15 »
Il plugin non te l'ho consigliato io. Comunque se hai la possibilità di procedere attraverso codice, se devi fare una nuova insert fai:
Codice: [Seleziona]
// Stabilisce la connessione al database
require_once 'configuration.php'; // il percorso deve puntare al file configuration.php di joomla
$conf = new JConfig;
$conn = mysql_connect($conf->host, $conf->user, $conf->password);


$sql = "INSERT INTO jos_users (password) VALUES ('".$password."')";
$result = mysql_query($sql, $conn);

Se invece devi inserire la password ad utenti già presenti nella tabella devi sapere l'id dell'utente per il quale vuoi inserire la password:
Codice: [Seleziona]
// Codice di connessione uguale al precedente

$sql = "UPDATE jos_users SET password='".$password."' WHERE id='".$id_utente."' LIMIT 1";
$result = mysql_query($sql, $conn);
Clastiweb

 



Web Design Bolzano Kreatif