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. |
|
|
|
![]() |
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. |
|
|
|
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 |
|
|
|
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. |
|
|
|
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 ;-)
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 13:27 |