Cytat
1. Co jeżeli żądanie jest obsługiwane przez kilka serwerów WWW, które między sobą równoważą obciążenia, jak wtedy uzyskasz dane sesyjne?
Nie przewiduję tworzenia aż tak rozbudowanych aplikacji, aby był potrzebny większy podział niż http dla skryptów, http dla elementów statycznych i baza danych

Zresztą przy tak dużym projekcie odpowiednia konfiguracja miejsca przechowywania sesji w PHP nie powinna sprawić problemów

Cytat
2. Serwery hostujące bardzo często współużytkują serwer, a tam zwykle jest dostępny jeden folder z sesją (dostępny z poziomu PHP) dla wszystkich
Określenie 'zwykle' jest moim zdaniem przesadą

Każdy dobry hosting powinien posiadać oddzielny katalog 'tmp' dla każdego użytkownika.
Cytat
3. Poza tym taka standardowa implementacja nie posiada dodatkowych zabezpieczeń typu sprawdzanie IP, UserAgent, czas ważności i inne, i w zasadzie musiałbyś to również implementować, a uwierz mi na bazie jest to o wiele prostrze i bezpieczniejsze
Takie rzeczy jak useragent można przecież też trzymać też w sesji i weryfikować (oczywiście o ile modyfikacja sesji z zewnątrz nie jest możliwa - patrz wyżej). Pomijam fakt że wykradnięcie sesji wg. mnie jest mało prawdopodobne.
Cytat
4. Poza tym często zdarza się, że pozostałe dane użytkownika (login, userType, imie, nazwisko etc) i tak są w bazie danych, więc po co najpierz ściągać dane z normalnie zapisanej sesji tylko po to aby wstawić je do zapytania w celu wyciągnięcia z bazy danych. Podczas zastosowania mechanizmu sesji opartego na bazie danych wszystko możesz na raz wyciągnąć za pomocą identyfikatora sesji.
No racja. Ale nie chodziło mi o trzymaniu wszystkiego w sesji, tylko tworzenia dodatkowych tabel z dziesiątkami co chwile zmieniających się rekordów

Ja np. w sesji trzymam jedynie identyfikator użytkownika i na jego podstawie pobieram jego dane z tablicy 'users'. Twój post jednak nakłonił mnie do dodania jednego zabezpieczenia: hasła, które uniemożwili zalogowanie się na dowolnego użytkownika w przypadku zmodyfikowania sesji

Pozdrawiam