Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Sessioni alternative

  1. #1

    Sessioni alternative

    Salve,
    Ho letto il tutorial per le "sessioni alternative"

    http://php.html.it/articoli/leggi/87...tive-in-php/1/

    L'ho applicato ma credo di non aver capito tutto il meccanismo.

    Quando un utente si logga si aziona il garbage collector e ciò causa la cancellazione di tutte le sessioni registrate dopo un tot di tempo deciso dal database.
    Quando un utente naviga la data di sessione ho nontato che non cambia e ciò mi comporta che quando un utente si collega al sito cancella tutte le sessioni comprese quelle attive.
    Quindi gli utenti si ritrovano con la sessione scaduta e il cookie presente che non permette poi di loggarmi di nuovo (il tempo del cookie è settato a 0 come nel tutorial)

    Potete chiarirmi questi due punti?
    Grazie

    Alex

  2. #2
    forse devo mettere start_session in tutte le pagine come se fosse session_start()?

  3. #3
    up

  4. #4
    io penso che dovrei allungare il tempo non solo del cookie ma anche della sessione nel database.
    Ciò significa che adogni apertura di una pagina io aggiorno il session date.

    Il cookie invece lo cancello se non è presente nessun sessionid nel db.

    Mi pare corretto, che ne pensate?

  5. #5
    almeno una risposta...

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    La risposta è qua

    Codice PHP:
    function my_session_gc() {
          
    mysql_query("DELETE FROM my_session
          WHERE session_date < " 
    . (time() - $this->session_gc_time));
       } 
    time() - $this->session_gc_time
    $this->session_gc_time è la durata della sessione

    Supponi che la sessione duri 10 minuti, il garbage collector cancella tutte le sessioni che hanno più 10 minuti di vita.

    Es.:
    Io mi connetto alle 18.00
    Tu ti connetti alle 18.05
    La sessione dura 10 secondi
    Il garbage collector cancella le sessioni che sono iniziate prima delle 18.05 - 10min = 17.55
    Tu ti sei connesso alle 18.00 quindi stai tranquillo per altri 5 minuti.


    Io non ho letto tutto il tutorial è comunque possibile fare in modo che la sessione si aggiorni anche se sconsigliato.

    Il cookie a 0 vuol solo dire che se chiudi il browser si cancella da solo.
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,316
    [ scusate ho sbagliato e non riesco a cancellare il post ]

  8. #8
    ti ringrazio molto della risposta.
    Come mai è sconsigliato aggiornare la data di sessione?
    Scusa sono un po' pignolo, ma quella riga lì che hai segnalato non mi ha ancora convinto perché mi cancella le sessioni degli utenti loggati e vorrei capire.

    Ho impostato la durata del cookie uguale a quella della sessione, lo trovo più corretto. Così scade tutto insieme.


  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    613
    Si le cancella, ma è così che deve funzionare.. le sessioni scadute devono "morire"
    Il problema di mantenere la sessione aperta perché si aggiorna ad ogni richiesta sta nei possibili attacchi da parte di qualche simpaticone.
    l tipo di attacco si chiama Session fixation, ovvero si forza il browser all'uso di un ID di sessione valido quando ottenuto.

    Supponi che tu apra una sessione il cui id sarà 123456, finisci di lavorare e la sessione non è scaduta ancora.

    Il simpaticone di cui sopra scopre che l'ID 123456 è valido e comincia a fare i suoi comodi... inviando continue richieste al server quella sessione rimane aperta facendo in modo che lui possa fare quello che vuole per quanto tempo vuole con le tue credenziali di accesso.

    Se la sessione scade invece si limitano i danni come puoi ben capire.

    La durata del cookie che dura come la sessione va bene ma non è che sia più corretto, tanto scaduta la sessione il cookie diventa inutile e quando chiudi il browser si cancella. Anzi, impostarlo a 0 forse evita qualch eeventuale asincronismo.
    Conosci te stesso(?)
    (..e allora perchè scassi a me? )

  10. #10
    Se la sessione dura 30 minuti e un utente si logga e naviga per 45 minuti si vede scadere la sessione improvvisamente e non naviga più se un altro utente si logga dopo i 30 minuti.
    E' normale anche questo o devo studiare più attentamente lo script?

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 © 2024 vBulletin Solutions, Inc. All rights reserved.