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


(Leopoldo Vaghi) #1

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!


#2

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


(Leopoldo Vaghi) #3

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.


#4

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


#5

Cmq entrambi generano cookie di sessione differenti…si sovrascrivono…


(microplus) #6

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