![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam następujący problem:
chcę zbudować własny mechanizm sesji. Głównym założeniem jest bezpieczeństwo aplikacji WWW. Zamierzam sprawdzać, czy przypadkiem 2 osoby jednocześnie nie są zalogowane na serwerze . Jednak, to nie jest problem, jak na razie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Teraz mam problem z zaplanowaniem klasy, tj. zastanawiam się, czy lepiej jest stworzyć klasę obsługującą tylko mój CMS (sesje obejmowały by tylko potrzebne dane CMS'a), czy też zbudować "uniwersalny" system sesji, obsługujący nieskończoną liczbę danych, które mogły by w sobie zawierać. Na razie jestem bardziej przychylny rozwiązaniu drugiemu, myślę nawet, że w Bazie Danych wystarczyła by tylko jedna kolumna przechowywująca "sprasowane zmienne". Schemat Bazy Danych : Kod id | time | ip | place | vars Zastanawiam się także nad typem danych SQL , jakim będzie vars (sprawsowana tablica) miałem zamiar dać VARCHAR (64), jednakże może być nie wystarczające na większą ilość danych. Może zamiast tablicy przechowywać w SQL zrobić to na cookies? Choć może komuś cookies nie obsługiwać. Zresztą to jest niebezpieczne :\ Ten post edytował Spirit86 8.06.2005, 20:02:54 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
2 rozwiazanie lepsze:)
Odnosnie pol to id_sesji, data, czas_wygasniecia, sesje pole sesja oczywiscie jakis ogromny typ bo jesli w sesji bedzie duzo danych to moze sie sypac. Tak na prawde sesja w bazie danych to zserializowana tablica. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 262 Pomógł: 21 Dołączył: 3.05.2004 Skąd: Sopot, Krakow, W-wa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli tablica duża to można przepuuścić przez gzcompress()" title="Zobacz w manualu PHP" target="_manual (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
na zmienne sesyjne radze dac pole TEXT wzglednie VARCHAR(255).
nie dalej jak wczoraj glowilem sie kilka godzin dlaczego mi pada obsluga sesji w aplikacji, po czym odkrylem ze prostu prostu dalem za male pole (VARCHAR 128) na dane sesyjne i byly obcinane w wyniku czego robil sie niezly kogel mogel (wczesniej nie przechowywalem duzo wartosci i nie wystapowal problem) dlatego ostatecznie zdecydowalem sie na TEXT. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
@sopel: po analizie, spłaszczeniu kilku tblic doszedłem do tego samego wniosku (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Rozniez mam text dla sesji i jakos aplikacja juz prawie rok dziala i jeszcze sie nic nie wywalilo.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
moj wlasny przypadek opisany 2 posty powyzej byl typowym przykladem krotkowzrocznosci. gdy jakis czas temu powstawal moj handler obslugi sesji nie przechowywalem duzo danych sesyjnych (i nie przypuszczalem ze kiedys bede - tak to jest z rzeczami ktora maja byc uniwersalne), wiec poskąpiłem na przestrzeni w bazie. byl tez inny powod, jako typu tabeli uzylem HEAP/MEMORY (ktory nie obsluguje TEXT). wszystko dla lepszej wydajnosci, dlatego ciagle zastanawiam sie czy tabela sesyjna z zalozonym indeksem na sessionid wydaje sie byc wystaraczajaco szybka, czy tez MEMORY z VARCHAR(255) bylby znacznie lepszy.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
a moze ktos powiedziec jak mniej wiecej powinien wygladac algorytm dzialania takiego systemu sesji?
|
|
|
![]()
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
@AxZx masz gotowa funkcje ktora wywoluje Ci wlasne funkcje do zapisu, odczytu, usuwania. Nastepnie umieszczasz zwykle zapytania. Nic w tym skomplikowanego nie ma.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cytat(AxZx @ 2005-06-09 12:34:47) a moze ktos powiedziec jak mniej wiecej powinien wygladac algorytm dzialania takiego systemu sesji? na wortalu jest artykul jak zrobic wlasny handler sesji na bazie |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
stworzyłem już klasę, jednak wydaje mi się strasznie wolna, czas jaki się generuje to: 0.012-0.015 s. (zaincludowałm tylko sterownik bazy danych no i obsługę autologowania. Czy to nie za długo? :|
|
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 2 923 Pomógł: 9 Dołączył: 25.10.2004 Skąd: Rzeszów - studia / Warszawa - praca Ostrzeżenie: (0%) ![]() ![]() |
Zrob testy z roznymi wielkosciamy sesji i wtedy sprawdz jak sie maja czasy.
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
mówisz o testowaniu tylko i wyłącznie mojej klasy, czy np. porównaniu jej do session_register ?
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 14:18 |