Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sesje] wspoldzielenie zmiennych
Forum PHP.pl > Forum > PHP
supermega
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.
dr_bonzo
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.
supermega
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.
dr_bonzo
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.
bigZbig
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 ;-)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.