Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesja i bezpieczeństwo logowania
Forum PHP.pl > Forum > PHP
Napster
Stworzyłem małą stronę z systemem użytkowników. Każdy użytkownik posiada na swoim koncie dość ważne dane.

Przy logowaniu, po podaniu poprawnych danych tworzę tablicę:
  1. $user = mysql_fetch_array(mysql_query('SELECT * from users WHERE `username`='.$post_username.' LIMIT 1'));


Do tego sesję:

  1. session_register('user_id');
  2. session_register('logged');
  3. $_SESSION['user_id'] = $user['ID'];
  4. $_SESSION['logged'] = 1;


Potem na każdej podstronie potrzebuje znać nick użytkownika:

  1. $nick = $user['username'];


Czy takie rozwiązanie jest bezpieczne? A jeśli użytkownik nadpisze sobie sesję (w Firefoxie takie coś widziałem) i poda ID innego użytkownika, to zdobędzie dostęp do jego danych i konta?

Może jakieś inne, lepsze rozwiązanie logowania i sesji?
Uriziel01
Z pewnością nie nadpisze sesji gdyż nie jest ona trzymana po stronie użytkownika, może jedynie zmienić wartość ID sesji w ciastkach. Co do zabezpieczenia, można to zrobić na wiele sposobów ale jak wiadomo nic nie jest absolutnie bezpieczne, możesz przykładowo zapisać do sesji podczas logowania adres IP użytkownika i sprawdzać je później aby uchronić się przed 'Session Hijacking', Google podpowie ci pozostałe.
Tutaj też masz małe co-nieco:
http://php.pl/Wortal/Artykuly/Bezpieczenst...ssion-Hijacking

I przede wszystkim nie możesz robić autentykacji po user ID, to są ogólnie dostępne dane i łatwo je zdobyć, wszędzie używaj ID sesji.
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.