Sessione Utente con Database

FreddieLives

Nuovo Utente
24 Gen 2011
3
0
1
Salve a tutti ragazzi,

premesso che conosco in linea di massima l'uso delle sessioni di PHP per effettuare l'autenticazione dell'utente e il mantenimento della stessa su più pagine e per diverso tempo; premesso che so che per rendere maggiormente sicure le suddette sessioni di PHP bisogna cambiare il percorso di salvataggio dei dati relativi ad esse su disco (quando si è su hosting condiviso);

mi chiedevo: è sensato creare delle sessioni su Database MySQL funzionanti tramite Cookie e Informazioni Utente?

Nel senso: al login dell'utente viene creato un record im DB, con ID SESSIONE e altri dati dell'utente, tipo IP e Browser. Viene creato anche un cookie contenente l'id della sessione in database. Quando l'utente torna a visitare il sito quindi, viene cercato il cookie, recuperati i dati di sessione in database e confrontati con i dati attuali dell'utente. Se qualcosa è cambiato si richiede nuovamente il login.


Come ragionamento è sensato? Se si, i dati che è possibile recuperare dell'utente sono abbastanza affidabili?
Ad esempio recuperando IP e Browser con le variabili $_SERVER['REMOTE_ADDR'] e $_SERVER['HTTP_USER_AGENT'] si va sul sicuro?

Sono al corrente che l'IP dell'utente possa ovviamente cambiare, ma ogni quanto avviene? come avviene? In particolare mi riferisco a quei cambi ip non derivamenti da azioni volute da parte dell'utente.

Per diversi motivi non voglio utilizzare solo le sessioni di php, vorrei conoscere meglio il modo il cui si usa il salvataggio di una sessione in database.

Consigli? Pareri?
Grazie mille!
 
No, quei dati non solo non sono affidabili in assoluto, ma se utilizzati per l'autenticazione vincolano l'utente all'uso di una sola postazione e di un solo browser.
 
Ma allora come si fa a rendere sicura una sessione di login? Non si può fare affidamento sui cookie, no? Devo utilizzare per forza le variabili di sessione?

Joomla e phpBB usano una tabella in DB dove inseriscono Id Sessione, Browser, Ip, ecc ma a quale scopo allora? solo per aumentare i 15 minuti di durata della sessione se stai fermo sulla stessa pagina?

Ma comunque io non mi aspetto che un utente mentre è loggato cambi IP e/o Browser.. Se cambia browser deve rifare il login, è una cosa che ho sempre visto in tutti i siti, non capisco..

Grazie!
 
Non è possibile creare un sistema di login sicuro, purtroppo dovrai accettarlo. Ci sono in continuazione dei rischi. L'unica cosa che puoi fare è cercare di aggiungere quanti più controlli possibili. Direi che quello su IP e browser possa essere un buon inizio, ma, come ti ha detto Eliox, non sono dati affidabili al 100%.
 
immagino che non posso aspettarmi che mi diate consigli più approfonditi, probabilmente ritenuti "segreti professionali".. Ma magari potete consigliarmi qualche buon libro-guida più approfondita di quelle che già ho. =)

Mi pare strano che il web tratti con sufficienza questo aspetto e mi pare ancora più strano che un linguaggio come PHP, ha una falla così grande per una parte fondamentale dell'80% di sitiweb dinamici, ovvero l'autenticazione.

Non capisco..
 

Discussioni simili