![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem z sesją php, na której opiera się moja witryna. Podczas logowania do serwisu, zdarza się (losowo), że użytkownik zostaje zalogowany na cudze konto. Przebieg procesu: 1. Odebranie danych z $_POST-a 2. Porównanie z bazą danych i ewentualne (w przypadku sukcesu), wyciągnięcie klucza dla rekordu usera z b.d. 3. Zapisanie klucza do tablicy $_SESSION. 4. Przerzucenie header()-em na stronę główną. No i na stronie głównej okazuje się, że zalogowany jestem jako ktoś inny!! Odrzucam, przez możliwie najróżniejsze próby sprawdzenia, i jako takie zaufanie do mySQL, błędne wyciągnięcie klucza z b.d. Zakładam, że po przerzuceniu funkcją header(), na stronę główną dostaję cudzy - aktualnie używany - identyfikator sesji. Uwagi dodatkowe: 1. header ma jako argument Location adres względny, żeby nie mieszać przechodzenia przez domeny. 2. W serwisie panuje ruch około 30 tyś wejść dziennie i problem (prawdopodobnie) nasila się przy wzmożonym ruchu. 3. Mam tylko kilka takich zgłoszeń dziennie, ale jeśli ktoś dostanie się na cudze konto - może bardzo namieszać. 4. Środowisko pracy: php 4.3.9 i mySQL 4.1.10, Linux pozdrawiam wszystkich |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Aż niemożliwe, żeby wygenerowane przez apache'a identyfikatory sesji się pokryły i użytkownik odczytał czyjś plik sesji, ale może to właśnie to?...
POkaż jak uwierzytelniasz użytkownika. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 15.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
mniej więcej tak:
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 07:55 |