Sessione Utente con Database

FreddieLives

Nuovo Utente
24 Gen 2011
3
0
0
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!
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
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.
 

FreddieLives

Nuovo Utente
24 Gen 2011
3
0
0
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!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
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%.
 

FreddieLives

Nuovo Utente
24 Gen 2011
3
0
0
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
Autore Titolo Forum Risposte Data
I carica foto profilo sessione utente PHP 2
I sessione utente elimina chat PHP 12
zighy php sessione per singolo utente PHP 7
R Creare Sessione per ogni utente PHP 2
D Sessione e nome utente PHP 2
MarcoGrazia Riprendere una sessione interrotta PHP 0
I sessione username PHP 1
I sessione username scarica file PHP 1
I aggiungere la sessione PHP 8
L Sessione e array per utenti PHP 0
N Variabile di sessione è un array PHP7 PHP 3
R probema con la sessione PHP 0
S Utilizzo variabili di sessione tra PC e server PHP 0
M [PHP] Passare variabile di sessione con metodo GET PHP 10
R SESSIONE PERSISTENTE Programmazione 0
L [PHP] Suggerimento su sessione PHP 6
Cosina [PHP] Chiudere sessione quando la pagina viene riaggiornata PHP 4
cattivic72 [PHP] Durata sessione PHP 1
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
I [PHP] login con sessione singola PHP 1
otto9due [PHP] id di sessione "session_id()" a cosa serve e come utilizzarlo? PHP 4
K [PHP] Unica sessione login forum/sito PHP 1
L [PHP] Sessione tra sottodominio PHP 1
M [PHP] Sessione Login PHP 15
gandalf1959 [PHP] variabile di sessione si azzera ricaricando la pagina? PHP 3
Emix Sessione strana... PHP 16
P dati da tenere in sessione PHP 2
M durata sessione php PHP 1
L Sessione php PHP 6
G Uso variabili di sessione PHP 4
N warning su sessione PHP 2
Emix Problema sessione PHP 6
M Problemi col settare variabile di sessione PHP 3
S sessione di login che non dura nullaaa Supporto Mr.Webmaster 0
otto9due Eeliminare tabella db a sessione scaduta.. Possibile? PHP 0
L eliminare un prodotto dal carrello tramite l'id della sessione PHP 1
T Passare dati (ID di sessione) tra le varie activity di un app android Sviluppo app per Android 1
O Mantenere una sessione PHP 20
E file di sessione non si aggiornano PHP 5
A estrarre il ciclo while in una sessione e spedire l'array in un db PHP 2
D Sessione PHP 11
P Problema con id di sessione PHP 4
L Query con sessione PHP 3
asevenx mantenere sessione login attiva anche in altre pagine PHP 8
Y mantenere sessione login? PHP 5
L problema variabile per creare sessione PHP 5
A Variabile di sessione perde il valore PHP 2
C cancellare un elemento in un array memorizzato in una sessione PHP 12
C E' possibile salvare array tramite sessione o cookie? PHP 5
darkjoker Sessione di bug hunting Sicurezza e Virus 1

Discussioni simili