Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75

    Mi conviene usare cookies o variabili di sessione?

    Ciao a tutti ,

    vi spiego la mia situazione. Al mio sistema possono accedere due categorie di utenti: diciamo categoria A e categoria B. In fase di login, attraverso una query, si va subito a vedere a che categoria l'utente appartiene e a seconda dei casi viene reindirizzato ad un certo tipo di home page personale. Le due homepage (quella della categoria A e della categoria B) danno la possibilità di fare operazioni diverse quindi l'utente di una categoria può fare certe azioni e l'utente dell'altra categoria altre ancora.
    Adesso, per evitare che l'utente "furbetto" di una categoria entri in una pagina dell'altra categoria conoscendone l'url dovrò lanciare all'inizio di ciascuna pagina un controllo che verifichi che tipo di utente sta cercando di accedere.
    Qui arriva la domanda. Per mettere su questo meccanismo mi conviene usare i cookie o le variabili di sessione? Non ho capito molto bene cercando su internet cosa offrono in più a lato pratico i cookie.

    Mi potreste chiarire questa cosa, magari con un esempio?

    Grazie

  2. #2
    io uso il db più le sessioni.
    ho un campo ruolo nella tabella degli utenti.
    quando si logga controllo che tipo di ruolo ha e lo salvo in una variabile di sessione.
    se però vuoi che l'utente possa rimanere collegato ti conviene usare i cookie.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75
    Si preferirei che possa rimanere collegato ma non ho capito bene come gestire i cookie...
    In fase di autenticazione dovrei fare una cosa di questo tipo prima di reindirizzare l'utente alla propria homepage giusto?
    codice:
    setcookie("cookie", "categoria_a", time()+3600,"/");
    oppure
    codice:
    setcookie("cookie", "categoria_b", time()+3600,"/");
    a seconda dei casi

    Poi però come faccio il controllo in tutto il resto delle pagine? Come faccio a richiamare il cookie relativo proprio a quell'utente? Dovrei chiamare il cookie con il nome dell'utente (mi sembrava di aver letto che non è cosa sicura)?

  4. #4
    Quello che conta è il nome del cookie. Se lo chiami pippo, dorai poi usare il readcookie passando "pippo" come valore e poi potrai leggere tutto quel che c'è nel cookie e che hai settato.
    Per evitare però problemi di tipo hijacking, le informazioni sensibili (es la categoria, nel tuo caso) è meglio se li recuperi sempre dal db.

    Utente si logga: leggi sul db la sua categoria e crei una sessione tramite cookie con un parametro univoco per "tenerlo loggato" (es: id utente + timestamp login + categoria, il tutto in md5). Contemporaneamente salvi questo dato univoco in una riga in una tabella del db per tenere traccia della corretta autenticazione e di altri parametri tipo "ultimo movimento", "browser" o quel che ti serve.
    utente naviga: leggi dal cookye il parametro di sessione univoco e lo confronti su quanto salvato nel db nella tabella delle sessioni. Se corrisponde allora può navigare (e aggiorni tipo l'ultima visita nella tabella delle sessioni), altrimenti lo slogghi (cancelli il cookie ed elimini la riga dalla tabella delle sessioni) e lo rimandi al login

    Perchè fare questo? Perchè se tu la categoria la salvi nel cookie e non controlli la reale corrispondenza, io potrei modificare a mano il cookie e far finta di essere di un'altra categoria....


  5. #5
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75
    Grazie per la risposta dettagliata. Mi rimane ancora un dubbio però relativamente al nome del cookie. Ogni utente non dovrebbe avere un cookie con un certo nome univoco? Per questo pensavo di dare lo stesso nome dell'utente al cookie.

    utente pippo -> cookie pippo
    utente pluto -> cookie pluto
    ecc...

    sbaglio?

    Poi il discorso sul valore in md5 mi torna.

  6. #6
    Anzi, tutto l'opposto, il cookie ha un nome e dei valori. Il nome è uno e non cambia, i valori cambiano.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75
    Ok credo di aver capito la logica anche se mi rimane un dubbio: per capire se l'utente può accedere ad una certa pagina il controllo non lo faccio sul cookie quindi? Se mi consigli di salvare la categoria sul db basta che, noto l'username nella variabile di sessione, faccia una query giusto?


    Grazie ancora

  8. #8
    Originariamente inviato da slang6
    Ok credo di aver capito la logica anche se mi rimane un dubbio: per capire se l'utente può accedere ad una certa pagina il controllo non lo faccio sul cookie quindi? Se mi consigli di salvare la categoria sul db basta che, noto l'username nella variabile di sessione, faccia una query giusto?


    Grazie ancora
    Sì esatto, noto l'username (E IL VALORE UNIVO CALCOLATO) fai una query controllando quindi che quel valore univoco recuperato dal cookie corrisponda a quell'utente per quella sessione

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    75
    Ok mi sembra tutto chiaro. Da domani passo all'implementazione.

    Grazie mille

  10. #10
    Originariamente inviato da Dascos
    Sì esatto, noto l'username (E IL VALORE UNIVO CALCOLATO) fai una query controllando quindi che quel valore univoco recuperato dal cookie corrisponda a quell'utente per quella sessione
    e se invece si salvasse il ruolo in una variabile di sessione e controllasse a quale pagine può accedere usando quella?
    nn si risparmerebbero un pò di query??

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.