Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Powrót do sesji po zamknieciu przegladarki
telepawel
post
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 11.05.2003

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


Witam,

Wiadomo, ze komenda session_start() wygeneruje nowa sesje...ok dzialamy na niej...pozniej zamykamy przehladarke...wchodzimy jeszcze raz na strone...i mamy ponownie nowa sesje..

Moje pytanie czy jest jakas mozliwosc aby ponownie otworzyc wczesniejsza sesje poprzez zmienna w linku ?

$link = $_REQUEST['sesja_z_linku'];
np. session_start($link);

Pozdrawiam
Paewl
Go to the top of the page
+Quote Post
crash
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Chyba wlasnie niezbyt bezpieczne byloby gdyby sesja nie wygasala po zamknieciu przegladarki. Za bardzo nie widze mozliwosci jak wskrzesic sesje... W tym linku to co bys niby podal? Link do katalogu gdzie przechowywane sa pliki sesyjne na serwerze? snitch.gif Mozesz zbudowac mechanizm sesji na bazie danych i uzaleznic wygasanie sesji od czasu nieaktywnosci, a nie zamkniecia przegladarki, ale nie polecam takiego rozwiazania.


--------------------
Go to the top of the page
+Quote Post
DavidPL
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 27.04.2004
Skąd: Rzeszów

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


Sprawa jest dość banalna.
Pierwsze co musisz zrobić to ustawić czas trwania sesji w ten sposób żeby leżały w systemie odpowiednio długo (np: ini_set('session.gc_maxlifetime', 7*24*60*60) sprawi że sesja będzie leżała na maszynie tydzień ).
Następnie funkcją session_id() pobierasz identyfikator sesji i tworzysz sobie odpowiedni link, np:
  1. <?php
  2.  
  3. echo 'skrypt.php?PHPSESSID='.$identyfikator_sesji;
  4.  
  5. ?>


Po zamknięciu przeglądarki, ponownym uruchomieniu i wklejeniu takiego linku dostaniesz stronę z już otworzoną sesją (o ile nie została usunięta z serwera).

Sprawa jest jeszcze prostsza jeśli przeglądarka akceptuje ciastka.
Wystarczy wtedy przy użyciu session_set_cookie_params() ustawić odpowiedno długi czas przechowywania ciastka sesyjnego i sprawa załatwiona.

Mam nadzieje że pomogłem.

Ten post edytował DavidPL 23.12.2004, 11:41:02


--------------------
Pozdrawiam,
Dawid
Go to the top of the page
+Quote Post
hawk
post
Post #4





Grupa: Zarejestrowani
Postów: 521
Pomógł: 0
Dołączył: 3.11.2003
Skąd: 3city

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


A z drugiej strony należy pamiętać, że dobrze napisany serwis, gdzie bezpieczeństwo jest ważne, powinien specjalnie upewniać się że taka funkcjonalność nie ma miejsca. Po prostu jest to dziura w bezpieczeństwie. Patrz atak typu session fixation.
Go to the top of the page
+Quote Post
DavidPL
post
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 27.04.2004
Skąd: Rzeszów

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


Zgadza się w 100%.
Nigdzie nie napisałem że jest to zalecane, bezpieczne itp itd, a jedynie wskazałem rozwiązanie.


--------------------
Pozdrawiam,
Dawid
Go to the top of the page
+Quote Post
morrison
post
Post #6





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 24.05.2004
Skąd: krakow

Ostrzeżenie: (10%)
X----


ja mam wiec pytanie odnosnie sesji i bezpieczenstwa. Mam system logowania userow, wykorzystuje sesje. Gdy uzytkownik sie wyloguje, sesja jest niszczona, ale: gdy da strone wstecz raz czy dwa, odswiez i wowczas znow jest ten sam uzytkownik zalogowany!! Co powinienem jeszcze dodac do systemu aby nie bylo takiej mozliwosci powrotu??


--------------------
Go to the top of the page
+Quote Post
crash
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Dasz wstecz to wroci i niby jest znow zalogowany, ale sprobuj cos zrobic - jesli sesja zostala zniszczona to powinno usera wywalic do logowania.


--------------------
Go to the top of the page
+Quote Post
morrison
post
Post #8





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 24.05.2004
Skąd: krakow

Ostrzeżenie: (10%)
X----


Niestety tak nie jest. Po kilku kliknieciach wstecz oraz odswierz wraca do systemu i mozna zrobic wszystko nawet zmienic haslo!! Moze nieprawidlowo zamykam sesje potem to sprawdze. Ale druga kwestia: sa systemy logowania, ktore nie pozwalaja na powrot do systemu, tam sie nie da kliknac wstecz lub odswiez i zobaczyc tego co bylo ogladane - i tak powinno byc. Jak to zrobic?

ps: jak najlepiej zniszczyc dane sesji, tak:
  1. <?php
  2.  
  3. // Usuń wszystkie zmienne sesyjne
  4. // Na koniec, zniszcz sesję
  5.  
  6. ?>

czy tak:
  1. <?php
  2.  
  3. // Usuń wszystkie zmienne sesyjne
  4. $_SESSION = array();
  5. // Na koniec zniszcz sesję
  6. ?>


questionmark.gif

Ten post edytował morrison 27.12.2004, 13:36:39


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 02:08