Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> co lepsze? sesje, czy baza danych+stałe?
expert
post 22.01.2009, 23:21:42
Post #1





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Przy czym strona będzie chodzić szybciej? Przy z góry ustalonych danych i zapisanych w sesjach, czy przy każdym ładowaniu strony, łączeniem się z bazą danych i zapisywaniem zmiennych do stałych?
Go to the top of the page
+Quote Post
Pepis
post 23.01.2009, 00:34:42
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 21.05.2005

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


Zależy od typu aplikacji, typu oraz rozmiaru danych, bazy danych, mechanizmu sesji. Każdorazowe łączenie się z bazą danych aby odczytać statyczne lub rzadko zmieniające się dane nie jest najlepszym pomysłem.
Go to the top of the page
+Quote Post
expert
post 23.01.2009, 14:14:34
Post #3





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Bo chodzi mi o wczytywanie takich danych, jak id usera, login, email, gg, itp. Czyli lepiej sesje?
Go to the top of the page
+Quote Post
Spawnm
post 23.01.2009, 14:17:42
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




dla wydajności lepsze sesje...chyba,
ale dla bezpieczeństwa lepsze zmienne i db.
Go to the top of the page
+Quote Post
expert
post 23.01.2009, 14:26:11
Post #5





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


hmm czyli wychodzi na to, ze po wylogowaniu musiał bym kasować wszystkie sesje... Bo jeżeli różnica jest znikoma to lepiej stosować DB+stałe, tylko przy dużej ilości userów będzie problem...

Ten post edytował expert 23.01.2009, 14:27:12
Go to the top of the page
+Quote Post
bim2
post 23.01.2009, 15:07:06
Post #6





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Sesje to będzie pewnego rodzaju cache, możesz zrobić to i na plikach. Nie widze sensu w pytanie, ponieważ jak już wspomniałem, masz zamiar stworzyć cache smile.gif


--------------------
Go to the top of the page
+Quote Post
Asmox
post 23.01.2009, 16:46:21
Post #7





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Cytat(expert @ 22.01.2009, 23:21:42 ) *
Przy czym strona będzie chodzić szybciej? Przy z góry ustalonych danych i zapisanych w sesjach, czy przy każdym ładowaniu strony, łączeniem się z bazą danych i zapisywaniem zmiennych do stałych?

Odpowiedź: sesje
Cytat
ale dla bezpieczeństwa lepsze zmienne i db.

eee tam, można zrobić cośtam, że można zmieniać dane w bazie
1. zbyt duża liczba połączeń może obciążać bazę, a programy śledzące trasę pakietów posiadane przez hax0rów mogą zczytać login i hasło do bazy
2. Dopóki pole w tabeli bazy user_logged jest ustawiony na 1, to żeby ustawić go na 0, trzeba kliknąć przycisk wyloguj. Tylko że nie każdemu się chce. A jak zapomni, to każdy może mieć dostęp do jego konta - sesje kasują się automatycznie.
Cytat( @ 23.01.2009, 14:14:34 ) *
Bo chodzi mi o wczytywanie takich danych, jak id usera, login, email, gg, itp. Czyli lepiej sesje?

Wczytywać możesz przez bazę. Ale jeśli chcesz po prostu sprawdzać, czy użytkownik jest zalogowany, aby na przykład nie wchodził na stronę bez uprzedniego zalogowania - to wykorzystuj zmienne sesji. One się do tego lepiej nadają

Ten post edytował Asmox 23.01.2009, 16:48:56


--------------------
Go to the top of the page
+Quote Post
shark121
post 23.01.2009, 17:06:33
Post #8





Grupa: Zarejestrowani
Postów: 62
Pomógł: 5
Dołączył: 31.03.2008

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


Cytat(Asmox @ 23.01.2009, 16:46:21 ) *
2. Dopóki pole w tabeli bazy user_logged jest ustawiony na 1, to żeby ustawić go na 0, trzeba kliknąć przycisk wyloguj. Tylko że nie każdemu się chce. A jak zapomni, to każdy może mieć dostęp do jego konta - sesje kasują się automatycznie.

można zrobić tak żeby zczytywało z sesji na przykład ip, nazwe użytkownika i date zalogowania, takie same dane znajdowałyby się w tabeli z użytkownikami i przy logowaniu byłyby tylko porównywane, a jeśli ktoś chciałyby specjalnie zmienić zawartość sesji/ciasteczka, np. zmieniając login na administratora nie dopuściłoby go to, ponieważ reszta danych nie zgadzałaby się.

Cytat(Asmox @ 23.01.2009, 16:46:21 ) *
Wczytywać możesz przez bazę. Ale jeśli chcesz po prostu sprawdzać, czy użytkownik jest zalogowany, aby na przykład nie wchodził na stronę bez uprzedniego zalogowania - to wykorzystuj zmienne sesji. One się do tego lepiej nadają

W małouczęszczanym serwisie to może i dobre rozwiązanie, ale jeśli mamy doczynienia z dużym portalem/serwisem jest to poważna luka w zabezpieczeniach.
Go to the top of the page
+Quote Post
expert
post 23.01.2009, 19:54:56
Post #9





Grupa: Zarejestrowani
Postów: 211
Pomógł: 4
Dołączył: 29.10.2008

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


Załóżmy że będzie to duży portal. smile.gif
Go to the top of the page
+Quote Post
pinochet
post 23.01.2009, 20:19:53
Post #10





Grupa: Zarejestrowani
Postów: 120
Pomógł: 12
Dołączył: 9.10.2008
Skąd: Tricity.Rumia()

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


pytanie do pana experta :] w jaki sposób przechowujesz sesje?
Go to the top of the page
+Quote Post
wlamywacz
post 23.01.2009, 23:39:17
Post #11





Grupa: Zarejestrowani
Postów: 535
Pomógł: 27
Dołączył: 3.05.2005

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


Cytat(Asmox @ 23.01.2009, 16:46:21 ) *
Odpowiedź: sesje

eee tam, można zrobić cośtam, że można zmieniać dane w bazie
1. zbyt duża liczba połączeń może obciążać bazę, a programy śledzące trasę pakietów posiadane przez hax0rów mogą zczytać login i hasło do bazy
2. Dopóki pole w tabeli bazy user_logged jest ustawiony na 1, to żeby ustawić go na 0, trzeba kliknąć przycisk wyloguj. Tylko że nie każdemu się chce. A jak zapomni, to każdy może mieć dostęp do jego konta - sesje kasują się automatycznie.

Wczytywać możesz przez bazę. Ale jeśli chcesz po prostu sprawdzać, czy użytkownik jest zalogowany, aby na przykład nie wchodził na stronę bez uprzedniego zalogowania - to wykorzystuj zmienne sesji. One się do tego lepiej nadają

Twoje pojęcie o względach bezpieczeństwa i budowaniu aplikacji rozłożyło mnie na łopatki... Sesje jako typowe sejse przechowujące informację o userach itd. sądzę że lepiej trzymać w bazie. Znacznie ułatwia operowanie na ich (zliczanie ilości aktywnych userów w jakimś czasie itd). Poza tym uważam, że trzymanie w bazie jest bezpieczniejsze bo a nuż się trafi nieobeznany administrator serwera i inne osoby będą mieć dostęp do folderu tmp z sesjami, co w bazie danych raczej jest niemożliwe. W sieci można znaleźć przykłady session handlerów opartych o Mysql.
Go to the top of the page
+Quote Post
Crozin
post 23.01.2009, 23:53:25
Post #12





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Sesja to mechanizm pozwalający na identyfikację użytkownika i przechowywanie danych ściśle z nim związanych w danym czasie.
Twoje pytanie to:
czy mechanizm sesji oprzeć na bazie danych czy plikach tekstowych


Wg zdecydowanie na bazie danych. Nie będę opisywać tego jak masz to wykonać - poszukaj w necie przykładów. Ważne będzie by tabela z sesjami była typu MEMORY co ułatwi dostęp do danych (prawdopodobnie będzie on szybszy niż w przypadku plików tekstowych)
Go to the top of the page
+Quote Post
Asmox
post 24.01.2009, 13:54:03
Post #13





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Cytat(wlamywacz @ 23.01.2009, 23:39:17 ) *
Twoje pojęcie o względach bezpieczeństwa i budowaniu aplikacji rozłożyło mnie na łopatki... Sesje jako typowe sejse przechowujące informację o userach itd. sądzę że lepiej trzymać w bazie. Znacznie ułatwia operowanie na ich (zliczanie ilości aktywnych userów w jakimś czasie itd). Poza tym uważam, że trzymanie w bazie jest bezpieczniejsze bo a nuż się trafi nieobeznany administrator serwera i inne osoby będą mieć dostęp do folderu tmp z sesjami, co w bazie danych raczej jest niemożliwe. W sieci można znaleźć przykłady session handlerów opartych o Mysql.

No masz trochę racji. Ale ja się nie znam na zabezpieczeniach zbyt dobrze, ale no przecież bardzo rzadko zdarzają się napady na strony.
Na mniejszych stronach ja polecam sesje, bo zajmują mniej kodu i są łatwiejsze biggrin.gif .


--------------------
Go to the top of the page
+Quote Post
shark121
post 24.01.2009, 13:56:55
Post #14





Grupa: Zarejestrowani
Postów: 62
Pomógł: 5
Dołączył: 31.03.2008

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


Cytat(Asmox @ 24.01.2009, 13:54:03 ) *
No masz trochę racji. Ale ja się nie znam na zabezpieczeniach zbyt dobrze, ale no przecież bardzo rzadko zdarzają się napady na strony.
Na mniejszych stronach ja polecam sesje, bo zajmują mniej kodu i są łatwiejsze biggrin.gif .


oj zdziwiłbyś się jak rzadko...
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 Wersja Lo-Fi Aktualny czas: 12.06.2025 - 11:23