Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sesje] wspoldzielenie zmiennych
supermega
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


po zrobieniu 2 stron umieszczonych na tym samym serwerze zawierajacych sesje obslugiwane przez php dostrzeglem bardzo ciekawe zachowanie...

strona A zawiera zmienna _SESSION o nazwie ZMIENNA
otwieram strone B, kompletnie niezwiazana z A (taka sama domena i to samo IP zrodlowe) i po rozpoczeciu sesji widze tam zmienna ZMIENNA zadeklarowana na stronie A.

Wydaje mi sie to tragicznie beznadziejne...

Przypuscmyz ze mam strone, gdzie za dostep odpowiada _SESSION['login'], ktos moze zrobic strone gdzie taka zmienna zostanie zadeklarowana i przypisze jej jakies wartosci i bedzie mogl wejsc na moja strone....

Czy to normalne zachowanie php? Czy da sie jakos wylaczyc?


.super.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Sesja jest zwiazana z ciasteczkiem (a konkretnie z wartoscia ciasteczka Session ID (SID)) pozostawionym u usera w przegladarce. Strona A zostawila to ciasteczko i zapisala na serwerze sesje z danymi. Przy wczytywaniu strony B zostaje wyslane to ciasteczko, bo domena sie zgadza i sciezka (jesli byla podana). php stwierdza ze sesja dla tego ciasteczka istnieje i ja odczytuje (w stronie B dostajesz zmienne ze strony A).

Najlepiej zrobic wlasny system sesji z zapisem do bazy danych.

Bo jesli inny user ma mozliwosc zapisu do katalogu z twoimi sesjami to moze utworzyc sobie plik z ze zmienna $_SESSION['login'], utworzyc sobie ciasteczko odpowiadajace temu nazwie pliku z sesja (SID) i ma autoryzacje na twojej stronie.
Go to the top of the page
+Quote Post
supermega
post
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


wszystko by bylo ok, gdyby tak jak piszesz sprawdzal sciezke... nie sprawdza.
www.domena.pl/stronaA.php
oraz www.domena.pl/katalog/stronaB.php
wspoldziela (w obie strony) zmienne sesji

.super.

Ten post edytował supermega 10.04.2005, 16:38:07
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


A sprawdz jaka sciezka jest podana w ciasteczku -- pewnie '/' i wtedy obie zaakceptuje.
Mam:
void session_set_cookie_params ( int lifetime [, string path [, string domain [, bool secure]]])
Zmien sciezke na odpowiednia i powinno by ok.
Go to the top of the page
+Quote Post
bigZbig
post
Post #5





Grupa: Zarejestrowani
Postów: 740
Pomógł: 15
Dołączył: 23.08.2004
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Oba skrypty odczytuja zmienna sesyjna bo oba wywolywane sa spod tej samej domeny. Nie ma znaczenie, ze sa w innych katalogach. Domena jest ta sama, dlatego jesli wspoldzielisz konto z kims innym powienienes oprzec sie albo na zaufaniu, albo na bardziej rozbudowanym systemie sesji ;-)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 13:27