Citazione:
a parte che una volta che uno é entrato nel tuo sito non ha certo bisogno della session username o session campo tabella per recuperare dei dati
Un attaccante che ha ottenuto l'accesso al filesystem (e quindi al contenuto delle sessioni) non ha necessariamente accesso al contenuto della base di dati.
Da qui l'idea di memorizzare nella sessione solo un access token, e non dati confidenziali. Idea non sempre ottima, ma valida in alcuni contesti.
Citazione:
poi non ho capito cosa centrano i token?
Mi riferisco a meccanismi di Token Based Authentication, non ai token di PHP.
Citazione:
tu sei venuto a dire che per avere piu sicurezza é buona norma fare le select nella tabella users 50 volte senza bind tra l'altro
Non ho mai detto che sia buona norma, ho parlato piuttosto di alternativa. La "maggior sicurezza" non deriva dal "fare 50 select", bensì dal mantenere i dati sempre racchiusi nella base di dati, senza duplicarli nel filesystem. Spesso precauzione superflua, allo sviluppatore spetta la decisione finale.
Non ho mostrato l'uso di prepared statement perché l'autore della discussione usa le API mysql, in cui essi non sono supportati.
Citazione:
se fai 50 select per recuperare valori dell'utenza allora previeni l'hacking
Mitigo alcuni danni causati Session Hijacking, la prevenzione è un argomento separato, ortogonale rispetto al confronto tra due approcci per la memorizzazione dei dati in una sessione (in fin dei conti di questo si tratta: un approccio eager ed uno lazy, nulla di più).
In ogni caso, non grazie all'aumento del numero di query, quest'ultimo è una mera conseguenza della strategia adottata.
In termini espliciti, l'approccio proposto segue la falsariga di OAuth 2.0, in cui il servente che gestisce l'autenticazione è separato da quello che gestisce la/e risorsa/e, dunque il processo di autenticazione non memorizza i dati dell'utente, ma genera un token.
A scanso di equivoci, questo non significa che l'approccio proposto implementa esaustivamente OAuth, piuttosto che ne trae ispirazione.