![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Ostanio pisałem własną obsługe sesji opartą na bazie mysql. Oto kod:
No i chciałem się zapytać co sądzicie o takim rozwiązaniu. Muszę jeszcze popracować nad zmniejszeniem ilości zapytań, bo w aktualnej chwili wynoszą średnio one 3. Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
A nie pożna poprostu użyć session_set_save_handler ?
Sprawdzony sposób (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
a co jesli ktos ma siec przy uzyciu NAT i na kilku kompach jest ta sama przegladarka?? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
a co jesli ktos ma siec przy uzyciu NAT i na kilku kompach jest ta sama przegladarka?? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) no wlasnie też sie chciałem zapytać co tu jeszcze można dodać ;p |
|
|
![]()
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jakiś czas temu było wyjaśniane na forum, że nie zrobisz tego bezpiecznie bez ciastek. Po prostu nie da się, bo wszystkie te informacje można nie przemęczając się nadpisać. Ciastka są najbezpieczniejszym sposobem na przenoszenie sesji między żądaniami.
|
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Myśle, że SID można wygenerować poprzez time() + ip + przeglądarka ew. + host.
|
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jeżeli dodasz time(), to po sekundzie nie odzyskasz tego identyfikatora... Poza tym, za dużo kombinowania - wystarczy dodać liczbę losową z dużego przedziału i sprawdzać, czy nie występują kolizje. Identyfikator sesji przenosić ciastkami. Opieranie się na User-Agent, adresie IP i hoście jest dużym błędem w zabezpieczeniach i nikt nie wdraża takich rozwiązań do swoich systemów...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja sie zastanawiam po co ludzie pisza swoje wlasne klasy do obslugi sesji skoro zaimplementowany w php mechanizm jest dobry. Nalezy jedynie zwrocic uwagę na to aby zmienic domyslny katalog dla plikow sesji.
|
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Ludvik: nikt przecież nie zabronił Ci przechowac SID'a w ciastku.
|
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 698 Pomógł: 3 Dołączył: 28.03.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Czytając kod, który napisał Apo, można odczytać jego intencje. Poza tym mam w głowie poprzedni temat. Dla mnie oczywiste jest użycie ciastek (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
No ok to chyba bede zapisywał ID w cookies, ale czy jest jakaś możliwość zrobienie takiej rzeczy (jak jest domyślne w php) ze jeśli jest wyłączone cookie to ID zostanie doklejaony do $_GET ?
Ten post edytował Apo 20.06.2006, 19:34:40 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/blink.gif) php samemu dokleja identyfikator sesji.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 426 Pomógł: 1 Dołączył: 2.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
(IMG:http://forum.php.pl/style_emoticons/default/blink.gif) php samemu dokleja identyfikator sesji. No ale my tu mówimy o mojej obsłudze sesji której kod jest na samej górze ;p |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Moze wylacz ciastka sobie w browserze i sprawdz co sie dzieje OK ? (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 0 Dołączył: 17.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
A co myślicie o następującym rozwiązaniu:
Ten post edytował elnino.pl 25.06.2006, 13:42:06 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
bigZbig: a moze po to by sprawdzic, ilu ludzi jest aktywnych na stronie.
a moze po to ilu zalogowanych. A moze po to by efektywnie sledzic sciezki przejsc uzytkownika, wyswietlic jego aktualna pozycje, zrobic statystyki uzywanych przegladarek zarazem i milion innych rzeczy.... trzymasz dane w bazie, nie musisz ich usuwać (do przedawnienia sesji służy pole w tabeli int(10) trzymajace timestamp). Korzyści jest wiele. |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@Vengeance - zgadzam się, że chcąc czegoś więcej ponad podstawową użyteczność sesji trzeba napisać coś swojego, ale większość ludzi piszących klasy do obsługi sesji implementuje jedynie ich podstawową funkcjonalność, a w takim wypadku jest to sztuka dla sztuki.
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Ano... ale to już ich problem a nie mój (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pytałeś do czego... to napisałem do czego ja używam własnych sesji. Tzn tylko własnego handlera podpinanego pod ten z php oczywiscie. Nie wyobrazam sobie robic SessionCostam::register('lol', 'blabla'); zamiast standardowego $_SESSION[]
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Teoretycznnie rzecz biorac to moznaby zamiennie uzywac tablicy $_SESSION i metod statycznych przykladowej klasy MySession. Nie sprawdzalem, ale takie cos mogloby zadzialac.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:24 |