Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SESJA
Forum PHP.pl > Forum > PHP
grzesio
Napisałem wlasny mechanizm ....
Jak to zrobić gdy user wyjdzie ze strony na którą się zalogował na przykład google i gdy powróci żeby nie miał możliwości kontynuowania sesji. (sesja zostaje przerwana gdy wchodzi się na inną stronę)

-G

Bowiem moze sie zdarzyc tak że user zaloguje się a potem zapomni sie wylogować, i wejdzie sobie na inna stronę, potem przyjdzie inny user i może cofnąć się na jego konto. Jaki zatem dodac ograniczenie? oprócz numeru IP, Nie chce przekazywać SID przez adres,
Nie chce aby bylo tak ze gdy otworze przegladarke sesja juz istniala bez logowania, nowe okno = ponowne logowanie...

Jakie dodac ograniczenia ?


Za każdym razem gdy user wchodzi na stronę odwołuję sie do bazy danych,
i sesja jest aktualizowana:
sprawdzam IP oraz czas.....

mysql_query("UPDATE ".$prefix."_session SET uname='$uname', time='$ctime', host_addr='$ip', guest='$guest' WHERE uname='$uname'");
Jarod
Było - sam podawałem sposób. Poszukaj
Sedziwoj
Jarod ciekawe jak, może podasz linka, bo mi się nie chce szukać po stronach.
A ja nie widzę skutecznej metody, nawet na poziomie przeglądarki. Jeśli ta nie zostanie zamknięta, lub czasu nie aktywności. Nawet używając HTTP_REFERER też jest do niczego przy cofaniu...

EDIT: lit
Jarod
Cytat(Sedziwoj @ 22.04.2007, 20:07:35 ) *
Jarod ciekawe jak, może podasz linka, bo mi się nie chce szukać po stosach.
A ja nie widzę skutecznej metody, nawet na poziomie przeglądarki. Jeśli ta nie zostanie zamknięta, lub czasu nie aktywności.

@Sedziwoj: może niezbyt dokładnie odpowiedziałem. Masz w zupełności racje. Ja odniosłem się do części pytania kolegi:
Cytat
Nie chce aby bylo tak ze gdy otworze przegladarke sesja juz istniala bez logowania, nowe okno = ponowne logowanie...
Sedziwoj
No chyba że tak...
(nawet zacząłem przeglądać, czy przypadkiem coś mi nie umknęło)
grzesio
Klucz sesji przekazuję przez ciasteczka własnego wyrobu.....

Produkujemy przy logowaniu ciasteczko, które bedzie żylo przez 1 godzine.

setcookie("user","$info",time()+3600);

Ciasteczko zawiera nasz SSID sesji ($info), i sobie leży na naszym komputerku.
Zamykamy przegladarkę i opuszczamy komputer. Ciasteczko pozostaje, gdyz
zamkniecie przegladarki go nie niszczy.
Przychodzi ktoś inny otwiera przeglądarkę, wchodzi na naszą stronę
i bez logowania ma dawną naszą sesję. (w ciągu tej godziny) (gdyz
SID jest zapisany w cookies)


Jak zrobić zabezpieczenie aby po ponownym otwarciu przegladarki,
pomimo ze istnieje cookies ze starej sesji, trzeba się ponowanie
zalogowac ?
Ludvik
Cytat
Ciasteczko pozostaje, gdyz zamkniecie przegladarki go nie niszczy.

Więc nie ustawiaj czasu wygaśnięcia ciastka. Wygaśnie wraz z zamknięciem okna przeglądarki.

Jedyny sposób na "zniknięcie" sesji, to zamknięcie przeglądarki. Tak jak powiedzieli poprzednicy, w przypadku powrotu na stronę, trudno jest dopilnować ważności sesji. Możesz coś kombinowaćz refererem, ale ciężko raczej będzie...
Tibod
Ja by to zrobił tak. Dla każdej wygenerowanej strony dodajesz jakieś unikalne id. Po wyświetleniu całej strony id zapisujesz w bazie jako użyte. Przed wyświetleniem natomiast sprawdzasz czy id już występowało: jeśli tak, to jest to "wstecz".
grzesio
"Jedyny sposób na "zniknięcie" sesji, to zamknięcie przeglądarki".........................

jeśli istnienie sesji równa się istnieniu ciastka to jest problem,,,,,

bo może się zdarzyć że będzie przeglądarka, która nie usuwa ciastek, sad.gif
zalogujesz sie z takiej przeglądarki potem ją zamkniesz, będziesz pewny że sesja zamkniętam ale cookies pozostalo, a tym samym sesja nadal istnieje, ktoś wejdzie i przejmie sesję....
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.