Forum Index > Coș cu teme șterse > Soft > Session cookie in IE6 problem

#0 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-02-18 11:46:55 (836 săptămâni în urmă) - [Link]Top
Bună ziua.

Am făcut o aplicaţie web pentru un grup de utilizatori care insistă la folosirea IE6 ca browser de bază.

Totul a mers bine, până la momentul în care deodată logarea nu se putea efectua pe aplicaţie.

Logarea are loc în felul următor:
Forma cu username şi password sunt transmise la server, acolo are loc procesarea, şi se transmite rezultatul - succes sau insucces. În cazul în care logarea a avut loc cu succes, se înscrie în session datele despre utilizator, iar la browser în cookies - PHPSESSID. După 2 secunde are loc un refresh automat, care şi desenează meniurile. În toate browserele aceasta lucrează normal, şi până nu demult lucra şi pe IE6. Procedura de logare nu am modificat-o, însă recent când testam am descoperit că nu merge logarea. Vine mesajul "Login successful", iar când se face refresh, se încarcă iar forma de logare. Aceasta e din cauza că în cookies nu se păstrează PHPSESSID.

Cine ştie, ce sa fac ca IE6 să salveze PHP Session ID cookie?


Mesaj util ?   Da   0 puncte

1
<< Precedenta      Următoarea >>

#1 by Unknown (Power User) (0 mesaje) at 2009-02-18 13:01:33 (836 săptămâni în urmă) - [Link]Top
Salut.

Nu o sa iti raspund la intrebare, pentru ca nu stiu cum se face :)
Am vrut sa zic ca consider folosirea phpsessid in calitate de identificator e putin periculoasa, desigur in caz ca esti absolut sigur ca acest identificator nu poate fi furat (cookie hi-jacking) nu e nici un pericol.

Eu permanent am folosit pentru a verifica daca un user este logat variabila $_SESSION din php care este absolut securizate pentru ca insasi serverul apache o monitorizeaza si prelucreaza, ea nefiind expusa utilizatorilor. Si in plus marele ei avantaj este ca ea nu e dependenta in nici un fel de user-agentul vizitatorului..

Mno.. unicul lucru care te pot sfatui sa-l faci este sa verifici http-headerele trimise de server in urma procesarii formei de logare, altceva nu stiu ce sa te sfatui =)
Desi... poate fi si o chestie cu cache-ul IE6?


Mesaj util ?   Da   0 puncte
#2 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-02-18 13:34:59 (836 săptămâni în urmă) - [Link]Top
#1 Unknown, "... Am vrut sa zic ca consider folosirea phpsessid in calitate de identificator e putin periculoasa, desigur in caz ca esti absolut sigur ca acest identificator nu poate fi furat (cookie hi-jacking) nu e nici un pericol. ..." - din câte am înţeles, phpsessid poate fi periculos doar în cazul în care cineva fură acest ID în timp cât este valid (limita la 30 minute). Oricum, dacă dispui de cookies a unui utilizator logat, poţi opera din numele lui, indiferent prin ce mod s-ar efectua aceasta.

#1 Unknown, "... Eu permanent am folosit pentru a verifica daca un user este logat variabila $_SESSION din php ..." - :)
eu tot despre asta vorbesc :).
SESSION din PHP e un masiv pe server, cheia la care este cookie-ul PHPSESSID. Şi nu e absolut securizat odată ce eu am pătruns pe un site fără a mă loga, folosind doar cookie-ul PHPSESSID de la cineva.

#1 Unknown, "... Si in plus marele ei avantaj este ca ea nu e dependenta in nici un fel de user-agentul vizitatorului.. ..." - din câte se vede aici, este dependentă. IE6 nu vrea să accepte cheia spre session.

#1 Unknown, "... Desi... poate fi si o chestie cu cache-ul IE6? ..." - pontu: exact aceleaşi surse stau la mine pe comp, şi pe un server X. Eu nu mă pot loga cu IE6 pe serverul X (cu alte browsere pot), însă mă pot loga pe compu meu cu IE6. Credeam că e din cauza că e intranet, însă am deschis accesul din internet pentru testare, şi alţii tot se pot loga cu IE6 la mine.

Problema probabil e în configurarea serverului, dar ce anume?
Am citit aici că poate fi din cauza timpului setat pe server, însă el coincinde practic cu cel care e la mine, şi se sincronizează permanent.

Am citit despre P3P, dar asta-i un ghemaroi mare care nu sunt sigur că e cauza problemei, şi că va fi şi rezolvarea.


Mesaj util ?   Da   0 puncte
#3 by Unknown (Power User) (0 mesaje) at 2009-02-18 14:34:13 (836 săptămâni în urmă) - [Link]Top
#2 Capilleary, "... SESSION din PHP e un masiv pe server, cheia la care este cookie-ul PHPSESSID. Şi nu e absolut securizat odată ce eu am pătruns pe un site fără a mă loga, folosind doar cookie-ul PHPSESSID de la cineva. ..." - Eu aveam in vedere logarea prin sesii cu un cod de genu:
<?
   @session_start();
   $_SESSION["id"] = $user_id; //Unde user_id e ceva din BD, un identificator unic
?>

<?
   if(intval($_SESSION["id"]) > 0)
   {
         /* cod pt utilizator logat*/ 
   }
   else
   {
         /* cod pentru unul anonim*/ 
   }
?>



Mesaj util ?   Da   0 puncte
#4 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-02-18 15:24:14 (836 săptămâni în urmă) - [Link]Top
#3 Unknown, păi da, da de unde ştie PHP cine accesează script-ul? De unde să ştie serverul ce să bage în $_SESSION?

7 utilizatori accesează simultan, se fac 7 de $_SESSION, de unde să ştie care şi a cui e?

Răspunsul e simplu: dacă scrii în pagina ta, în bara de adrese "javascript: alert(document.cookie);" o să-ţi dea un cookie "PHPSESSID=....." valoarea căruia e un cod MD5 generat de PHP. PHP îl gestionează automat, îl salvează, îl ia, etc.

Dacă în browser nu se salvează PHPSESSID, PHP vede ca şi cum prima dată accesezi script-ul.

Exact aceasta se întâmplă la mine. IE6 nu salvează PHPSESSID.


Mesaj util ?   Da   0 puncte
#5 by Unknown (Power User) (0 mesaje) at 2009-02-18 22:27:34 (836 săptămâni în urmă) - [Link]Top
#4 Capilleary, "... o să-ţi dea un cookie "PHPSESSID=....." valoarea căruia e un cod MD5 generat de PHP. ..." - Nu ai dreptate.. acest phpsessid nu se salveaza ca cookie =) incearca sa faci un index.php cu primul snippet de mai sus si o sa vezi..


Mesaj util ?   Da   0 puncte
#6 by Capilleary Donor (Патлатый) (0 mesaje) at 2009-02-19 00:00:53 (836 săptămâni în urmă) - [Link]Top

php.ini wrote:

; Whether to use cookies.
session.use_cookies = 1

;session.cookie_secure =

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /

; The domain for which the cookie is valid.
session.cookie_domain =

; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript.
session.cookie_httponly =



http://md.php.net/manual/en/intro.session.php wrote:

A visitor accessing your web site is assigned a unique id, the so-called session id. This is either stored in a cookie on the user side or is propagated in the URL.



A 4-a oară spun. E cookie. Şi cred că m-am informat destul pe net despre aceasta înainte de a pune această întrebare.

Vă rog pe toţi, înainte de a insista că nu am dreptate, documentaţi-vă, fiţi atenţi. Eu la fiecare afirmaţie de genul "nu ai dreptate" sunt foarte atent, caut pe net informaţie, aflu cât se poate de mult legat de ce mi-a fost răspuns.


Mesaj util ?   Da   0 puncte

1
<< Precedenta      Următoarea >>

Forum Index > Coș cu teme șterse > Soft > Session cookie in IE6 problem

You are not permitted to post in this forum.


Navigare rapidă:


Comunitatea digitală din Moldova. Să adunăm și să organizăm conținutul autohton de pe întreg internet pe un singur site web.