Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sesja a bezpieczeństwo
Forum PHP.pl > Forum > Przedszkole
d.stp
Przy poprawnym logowaniu mam coś w stylu:

  1. $_SESSION['logged'] = true;
  2. $_SESSION['login'] = $_POST['login'];


a na ograniczonych dostępem podstronach:

  1. if (!isset($_SESSION['user_logged'])) header();


czyli taki standard.

Teraz tak sobie myślę to przecież jak user usunie sesje user_login a zostawi samo logged to będzie "anonimowy" u mnie na stronie, tak? Czy samo to że dodam do sprawdzania czy istnieje również sesja z loginem wystarczy? robię mase rzeczy po tym loginie z sesji, a przecież tą wartość też można podmienić...

powiedzmy że znam login administratora strony i mogę zmienić wartość sesji "login" na jego login?
Crozin
1. Użytkownik nie ma możliwości ingerencji w dane trzymane po stronie serwera (sesja).
2. Twój mechanizm sprawdzania niczego nie blokuje - wysłanie nagłówka, nie zatrzymuje działania skryptu.
d.stp
Chyba nie zrozumiałem pkt. 2 biggrin.gif ten mechanizm sprawdzania ma działać na zasadzie że jak jest user niezalogowany a wejdzie w jakąś tajną podstronę to ma go przenieść na główną.
Crozin
Jeżeli cały Twój kod ogranicza się do czegoś w rodzaju:
  1. if (!isset($_SESSION['user_logged'])) {
  2. header('Location: ...');
  3. }
To nie jest to żadne zabezpieczenie. Musisz jeszcze przynajmniej zatrzymać wykonywanie skrypt, np. przy pomocy exit. Funkcja header jedynie ustawia nagłówek HTTP i nie ma najmniejszego wpływu na dalsze wykonywanie kodu, a przeglądarka może go kompletnie zignorować.
d.stp
O kurcze, tego to nie wiedziałem. Myślałem że po header() skrypt się kończy. hmm, czyli samo exit/die wystarczy po header() ?
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.