2009-10-15 6 views
13

Ho segnalazioni e reclami da parte del mio utente che utilizzeranno uno schermo e verranno immediatamente rimandati alla schermata di accesso alla successiva richiesta. Non succede sempre ma a caso.CakePHP sessione/autenticazione disconnessa a intermittenza

Sto usando CakePHP e la componente Auth, che sembra funzionare bene diverso da questo problema

Ho avuto qualche feedback sui forum di torta, una volta che questo a volte è causato da una richiesta 404 che ripristina la sessione, vale a dire se hai un link di immagine rotto o un file di favicon mancante. Ho firebug aperto e non ci sono richieste non riuscite, quindi ho escluso questa possibilità come possibilità, ma l'utente viene disconnesso sporadicamente. Questo sembra accadere attraverso browser e sistemi operativi.

Di seguito una sintesi delle mie impostazioni di configurazione: Security.level = alta Session.timeout = 1200 // questo significa il mio timeout effettivo dovrebbe essere 12.000 secondi Session.save = php

Sono veramente a una perdita di ciò che sta causando questo problema ...

risposta

9

Ho anche avuto un problema con il mio livello di sicurezza elevato. Quando lo hai impostato su alto, rigenera la sessione ad ogni richiesta: "Gli ID sessione CakePHP vengono rigenerati anche tra le richieste se 'Security.level' è impostato su 'alto'."

Ho avuto questo problema anche con il cross-browser, quindi so che non è la soluzione migliore ma ho appena modificato l'impostazione di sicurezza su medium e ho cambiato il timeout della sessione per riflettere quell'impostazione e da allora non ho avuto problemi.

+0

grazie, darò uno scatto – croixhaug

+0

Sei un vero toccasana. – Dirk

+0

Grazie! Altri 8 da fare .... – Justin

0

Controlla il tuo Auth->allow o ->deny, perché potrebbe essere, che il tuo utente accede a una parte limitata o all'azione dei tuoi controller.

In secondo luogo, controlla il tuo specifico Sanitize di CakePHP, perché le opzioni di "alta sicurezza" spesso causano problemi.

404 pagine reimpostano la sessione? Non ne ho mai sentito parlare.

Penso che il problema si trovi da qualche parte nelle routine di autenticazione. Se si limitano troppe cose, può accadere che alcune costellazioni di richieste falliscano a causa dei loro attributi mancanti.

Ad esempio: UserOne tenta di accedere al sito Web, il suo nome utente contiene alcune stringhe che causano un'interpretazione errata del nome utente. Il nome può essere trovato all'interno del database, ma l'autenticazione non può collegarlo alla richiesta.

Errori come questo si nascondono sempre all'interno del tuo codice, dove non ti aspettavi che fossero.

+0

Spiacente, probabilmente ho bisogno di specificare ulteriormente .. il processo di login utente con Auth va bene. Quando provo ad accedere a/admin/urls, l'ho impostato per richiedere Auth, e lo fa per le schermate corrette. L'accesso non è un problema, trova i nomi nel database, ma il problema è che mi sporadicamente buttar fuori quando sono già dentro. – croixhaug

+0

La richiesta 404 apparentemente può resettare l'Autenticazione/Sessione Cake, non un generico problema PHP – croixhaug

+0

Provare a configurare cakephp ancora una volta, incluso il database (ecc.), Questo potrebbe aiutare. –

0

Security.level on high lo farà. impostarlo su medium in core.php

1

Ho avuto un problema simile, ho trovato il controllo user_agent nel file core.php, impostalo su false!

Che cosa stava succedendo dopo che una pagina aggiorna l'ID di sessione è cambiato e sono stato disconnesso, ma nell'oggetto Session c'era un errore che diceva Tentativo Session Hijack !!! pr ($ this-> Session);

Impostare questo su false in core.php! Configure :: write ('Session.checkAgent ', false);

+0

grazie mille per questo. Configurare :: Write ('sessione', array ( 'default' => 'database', 'checkAgent', falso, 'handler' => array ( 'modello' => 'cake_sessions' ) // 'timeout' => 480 // 8 ore )); –