• User Attivo

    Controllo accesso - Meglio le sessioni PHP o meglio usare cookie personalizzati?

    Ciao ragazzi :gthi:

    Piccolo quesito...
    Devo realizzare un piccolo script in PHP per sapere se l'utente ha effettuato o meno l'accesso al proprio account.

    Cercando sul web ho notato che tutti suggeriscono di usare le "sessioni".
    Diciamo che non voglio usare queste benedette sessioni.
    Voglio piuttosto creare da me stesso uno script che crea un cookie nel browser dell'utente con all'interno delle info che mi dicono se l'utente è loggato o meno.
    Ad ogni pagina viene fatto questo controllo...

    Che ne pensate? :mmm:
    Insomma, dove sta la differenze nell'utilizzare queste sessioni di PHP già belle e pronte oppure nell'usare un mio script personale che crea il cookie e lo legge ogni volta che serve?

    Grazie a tutti :bigsmile:

    Ciao ciao :ciauz:


  • Super User

    Beh puoi fare come vuoi, ovviamente.

    La sessioni ti permettono una gestione più rapida e sicura delle informazioni dell'utente, le quali non devono venire ogni votla ripescate tramite cookie, ma sono già presenti nel lato server.

    Io di solito opero una via di mezzo per permettere la riconnessione automatica o altre feature diciamo non propriamente adatte alle sessioni, tuttavia ti consiglio di non conservare informazioni confidenziali ( vedi hash delle password o altro ) sotto forma di cookie, perchè facilmente ripescabili da un eventuale "curiosone" che possa mettere le mani sul pc degli utenti.

    Con le sessioni invece salvi nel pc utente il solo cookie contenente l'id di sessione, che di per se non ha importanza. Tutti i dati vengono salvati nel server nella cartella specificata nel php.ini.

    Ovviamente se ricorri ai soli cookie devi studiare un bel metodo per gestire il tutto, ovvero devi creare id unici da assegnare ad ogni utente, ed impostare i cookie di conseguenza.

    Ad esempio, settare un solo cookie con il nome utente per determinare se una persona è loggata o meno non è una grande idea, perchè allora io potei crearmi da me un cookie col nick di un'altro utente loggandomi di fatto con un'altra identità.


  • User Attivo

    @PaTeR said:

    Ovviamente se ricorri ai soli cookie devi studiare un bel metodo per gestire il tutto, ovvero devi creare id unici da assegnare ad ogni utente, ed impostare i cookie di conseguenza.

    L'idea è proprio quella di creare un cookie, assegnare un ID univoco che va salvato anche sul server.
    Se i due ID coincidono allora vuol dire che l'utente è davvero lui ed è loggato, no?
    Credo che a livello base non ci siano problemi di sicurezza...


  • ModSenior

    Ciao Protone86,

    a modificare il cookie e cambiarti l'id con quello dell'amministratore impieghi al massimo 15 secondi.


  • User Attivo

    @Thedarkita said:

    Ciao Protone86,

    a modificare il cookie e cambiarti l'id con quello dell'amministratore impieghi al massimo 15 secondi.

    Ciao,

    ma sei serio??:surprised:

    Come faresti a sapere che ID c'è sul server?
    Quell'ID verrebbe generata casualmente e ad ogni nuova sessione cambierebbe...


  • ModSenior

    Un cookie puoi sottrarlo ad un visitatore anche tramite javascript, puoi benissimo fare in modo di guardare i cookie di una persona e farteli spedire con un pizzico di javascript inseriro nella pagina giusta...
    Sinceramente non vedo per quale motivo affidare la sicurezza ad un cookie, quando con le sessioni sei molto più tranquillo...


  • User Attivo

    @Thedarkita said:

    Un cookie puoi sottrarlo ad un visitatore anche tramite javascript, puoi benissimo fare in modo di guardare i cookie di una persona e farteli spedire con un pizzico di javascript inseriro nella pagina giusta...

    Ok grazie mille :wink3:
    Ho imparato una cosa nuova... :smile5:

    Userò le sessioni di PHP, ciao ciao :gthi:


  • Super User

    Ottima osservazione darkita, non fosse per il fatto che, se per rubare un cookie qualsiasi servano 15 secondi ( e dipende, se hai accesso fisico al pc o vai per xss ), per rubare il cookie dell'id di sessione ce ne stai 5, visto che sai anche come si chiamerà tale cookie.

    Quindi anche quando pensi di essere molto più al sicuro con le sessioni, in realtà stai ancora affidando la sicurezza delle tue informazioni sensibili ad un cookie.

    Se quello che devi proteggere non è il server della NASA in cui ci sono video di autopsie di alieni, allora a livello di protezione non ti cambia niente. Come puoi rigenerare periodicamente l'id di sessione in php, puoi anche studiarti un tuo sistema di sicurezza, magari con controlli all'ip o al browser o altro ancora, non implementati nelle sessioni in php.

    Altrimenti, puoi usare le connessioni SSL.