[Yii 1.1] [Trovato bypass]Autologin - remember me mi dimentica

Non riesco a far funzionare bene l’ autologin. Ho settato autologin = true e gestito il campo remeber me in modo da inserire un secondo parametro >0 nel login:

	Yii::app()->user->login($this->_identity,$duration); 	(duration è 3600*24*30).

Risultato: se chiudo il browser e lo riapro mi fa autologin un paio di volte, poi dopo qualche volta mi chiede user e password. Il cookie è ancora presente, ma apparentemente non viene rilevato.

EDIT: Ho verificato che il cookie viene regolarmente caricato, ma quando cerca di fare il restore dell’ identità dal cookie non passa il controllo del Security Manager. Eppure il cookie non è stato modificato!

EDIT: Il controllo di sicurezza non passa perchè il cookie è encoded, e quando viene caricato il deencoding lo rende così:

69a99dccf2ff865d04d7e253e0fba900ccd4cc78a:4:{i:0;s:2:\"11\";i:1;s:23:\"leopoldo.vaghi@alice.it\";i:2;i:2592000;i:3;a:0:{}}

con lo slash davanti al doppio apice. Se si elimina lo slash il conrollo di sicurezza passa.

Perciò ho trovato questo bypass: ho aggiunto a riga 304 in CSecuritymanager.php la riga:

$data2=stripslashes($data2);  

e tutto funziona.

A questo punto ho osservato che il problema si presenta solo quando utilizzo Yii integrato con wordpress secondo il metodo inicato in questo articolo:

http://www.yiiframework.com/wiki/322/integrating-wordpress-and-yii-still-another-approach-using-yii-as-the-router-controller/

Evidentemente la presenza del codice do wordpress cambia il modo fare il deencoding dei cookies. Forse viene settato qualche parametro di inizializzazione del php, manon sono riuscito a identificarlo (se qualcuno mi aiuta gli sarò grato).

P.S. Non c’ entra, ma ci tengo a segnalare che l’ integrazione di Yii con wordpress è semplicemente formidabile. Provare per credere!

Tutto dipende da come gestisci l interazione con wordpress. wp gestisce l autenticazione con i cookies…ho avuto simili problemi di propagazione in passato.

Le utenze di wp e di Yii sono sincronizate: quando carico wp controllo se c’è un utente registrato in Yii e in tal caso faccio login in wp con lo stesso utente (lo trovo tramite l’ e-mail che c’è sempre ed è sempre univoca). Se l’ utente non c’è in wp lo creo coni dati presi da Yii ( i nuovi utenti si registrano sempre in Yii). Quindi sia wp che Yii utilizzano cookies, ma differenti ed ognuno è gestito con le normali funzionalità del suo stesso framework… non dovrebbero esserci problemi di interazione…

Grazie, ciao.

Ah ok. Dunque non utilizzi le sessioni yii con db?

Cmq entrambi generano cookie di sessione differenti…si sovrascrivono…

Salve a tutti,

sono Stefano e sono project manager per la ditta Microplus (uffici a Cuneo e Milano), stiamo cercando uno sviluppatore PHP/yii2 per un progetto, qualcuno ci può aiutare?
va bene anche un lavoro freelance, principalmente da remoto.

grazie
Stefano

email: stefano@microplus.it
tel: 347 26 10 685