Salve ragazzi,
ho una questione da discutere se vi va, come da titolo ho un problema da risolvere con la sicurezza dei dati in sessione.
So che probabilmente è un ergomento già discusso ma alcune questioni non mi sono comunque chiare, vi spiego l'antefatto: sto costruendo un'applicazione Web che fa uso di database, al momento del login almeno un dato viene messo in sessione per riconoscere l'utente connesso.
Il problema che mi sono creato al momento è quale dato metto nella sessione?
La semplice tabella di login è così fatta:
codice:
id intero autoincrementante
nickname
password
attivo (sì|no|bannato)
Una cosa semplice come si vede, ovviamente ulteriori dati sono in altre tabelle, questa serve solo al login; il campo id è un normale campo autoincrementante, nick e pass sono ovvi, attivo serve a vedere se il soggetto deve essere autenticato o meno.
Una volta effettuatato il login per riconoscere l'utente tra le pagine del sito uso la sessione, sì ma quale dato inserisco in sessione?
  • ID? Un numero che se scoperto mi basterebbe cambiare per navigare le pagine del sito come se fossi un altro utente.
  • nickname forse è un dato più sicuro, una volta effettutato l'hash del nome potrei stare abbastanza sicuro che pochissimi riescano a carpirne il vero nome.
  • come sopra ma mi pare fuori luogo, anche se ho visto molti forum blasonati addirittura metterli nei cookie e non parlo di quelli di sessione ;-)

Voi che usereste per identificare la sessione e comunque per limitare il numero delle query al database, preferireste estrarre fuori tutti i dati ed affidarvi alla sessione per trasportare le informazioni relative all'utente tra una pagina e l'altra? O come?