Newsgroup: it.comp.www.php
Titolo: password + mysql

Forse è un po ot, ma confido nel fatto che molti di voi usino l'accoppiata
php+mysql.
Volevo sapere come usare correttamente la funzione password di mysql:
Se creo una tabella di utenti, in cui chi si registra mette nomeutente e
password,
la password devo lasciarla in chiaro o è meglio criptarla con la funzione di
mysql password() ?
Se cripto la funzione però credo che non sia possibile per il mio sito
fornire il servizio "dimenticato la password?" in quanto non sarei in grado
di recuperarla e quindi di spedirla all'e-mail dell'utente.
Potrei generare una nuova password random da rispedire al mittente però.
Credo che sia la stessa cosa spedirgli la sua password o una generata in
modo casuale.
Anche se in questo modo in realtà permetto ad un male intenzionato di
forzare il cambio della password dei miei utenti.
Voi come fate?
Cordialmente.
Carmelo Carchedi.
per le risposte private, togliete i numeri dall'e-mail.
P.S.:Se pensate che questo messaggio sia ot, indicatemi il newsgroup
appropriato perfavore.

 grado di recuperarla e quindi di spedirla all'e-mail dell'utente.
fai così: cripti la password.
poi gli chiedi di scrivere una domanda ed una risposta che conosce solo lui.
la domanda la lasci in chiaro. la risposta la cripti.
quando dimentica la password, gli poni la domanda che ha deciso lui
es: 'qual'e il nome di battesimo di tua mamma??'
a questo punto, confronti la password('risposta') con quella già inserita e 
se coincide, gli reimposti la password (nuova) e gliela mandi via mail.
se non sa rispondere alla sua domanda allora è ciula e non si merita di 
riaccedere al sistema!!
ciao
-- 
Punkarruso
mail:punkarruso(at)geniotradottoininglese(dot)it
pubblicità progresso:
http://groups.google.com

appropriato perfavore.
Non tanto OT, visto che non si parla solo della funzione password() di
php. Comunque ti consiglio it.comp.software.database , che è un altro
NG, come questo, di alto livello, dove tutti sono gentili e
competenti.
Matteo

Grazie per la risposta, ma la funzione password() non č di php ma di Mysql,
e sui manuali non si capisce bene come funziona, o meglio come cripta,
quanto puņ essere lunga la password, se č meglio metterla in un campo CHAR o
in un BYNARY, dalle prove sembra che generi sempre un criptato di 16
caratteri, ma come posso esserne sicuro?
Cordialmente.
Carmelo Carchedi.

caratteri, ma come posso esserne sicuro?
Esatto anche questo, il campo che genera č 16 caratteri e non č
decrittabile. 
Quanto alle altre domande (tipo campo, lunghezza password) sentiamo
qualche guru, oppure fai delle prove.
M

 caratteri, ma come posso esserne sicuro?
Prova a fare due query:
"CONNECT mysql";
"DESCRIBE user Password";
+----------+-----------------+------+-----+---------+-------+
| Field    | Type            | Null | Key | Default | Extra |
+----------+-----------------+------+-----+---------+-------+
| Password | char(16) binary |      |     |         |       |
+----------+-----------------+------+-----+---------+-------+
Dato che mysql usa password() per le sue password puoi dedurre che siano
sempre
char(16) binary.

 ha scritto nel messaggio
news:A8mP8.120416$g04....@tornado.fastwebnet.it...

Io uso la funzione md5(). Il vantaggio č che qualunque sia la lunghezza
della stringa passata alla funzione, l'hash restituito č sempre lungo 32
caratteri, quindi il campo password del database avrą questa dimensione.
Mi sono creato una procedura per il logon che funziona in questo modo:
1) verifica l'esistenza dello username;
2) se username esiste allora verifica password, altrimenti mostra nuovamente
maschera di logon fino a 'x' tentativi, quindi nega accesso alla pagina
(protezione relativamente utile e facilmente aggirabile);
3) se username esiste ma password errata, conta i tentativi di accesso. Al
tentativo 'x' blocca l'account e notifica all'ammininistratore;
4) se username esiste e password ok, allora concedi accesso.
Se l'utente ha dimenticato la password, ne viene generata una nuova
automaticamente solo se l'utente fornisce la classica coppia
domanda/risposta, quindi il sistema invia una mail da ritornare in reply per
ottenere la nuova password (che poi l'utente potrą cambiare).
E' forse una procedura troppo paranoica? :-)
Bye.
Maurizio

Potresti usare una tabella temporanea dove memorizzare temporaneamente
gli accessi, e poter effettuare i confronti.
Ciao
Cla