Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: co lepsze? sesje, czy baza danych+stałe?
Forum PHP.pl > Forum > PHP
expert
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?
Pepis
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.
expert
Bo chodzi mi o wczytywanie takich danych, jak id usera, login, email, gg, itp. Czyli lepiej sesje?
Spawnm
dla wydajności lepsze sesje...chyba,
ale dla bezpieczeństwa lepsze zmienne i db.
expert
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...
bim2
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
Asmox
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ą
shark121
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.
expert
Załóżmy że będzie to duży portal. smile.gif
pinochet
pytanie do pana experta :] w jaki sposób przechowujesz sesje?
wlamywacz
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.
Crozin
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)
Asmox
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 .
shark121
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...
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.