2010-02-14 10 views

Odpowiedz

5

Klucz sesji jest przechowywany w przeglądarce klienta, a dane są przechowywane na serwerze.

Gdy użytkownik wysyła żądanie na serwer, klucz sesji jest wysyłany przez sieć, a wartości powiązane z kluczem są pobierane z określonego pliku sesji na serwerze i są dostępne przez $ _SESSION.

Możliwe jest przejęcie sesji innego użytkownika, jeśli klucz zostanie przechwycony, dlatego w sesji powinny znajdować się określone wartości wiążące się z połączeniem komputera z siecią (np. Adres IP).

+1

Nie chcę, aby użytkownik edytował dane. Nie może edytować danych, prawda? – FinalDestiny

+1

nie, nie może .. –

0

Zazwyczaj są one przechowywane w katalogu/tmp na serwerze internetowym, jeśli host nie jest ostrożny. Można to zmienić za pomocą session_save_path(), jest to coś, co robię ze wszystkimi moimi aplikacjami PHP, które używają sesji.

2

Dane sesji nie mogą być edytowane przez użytkownika, ponieważ są przechowywane na serwerze. Użytkownik może jednak rozpocząć nową sesję i zrzucić wszystkie dane sesji, które poprzednio miał. Ponadto powinieneś być świadomy wartości granicznej security issues, takiej jak fiksacja sesji.

0

To działa jak poniżej:

  1. Przeglądarka żąda strony, składając swój SID lub ID sesji przy pomocy cookie lub z adresem URL.
  2. Server wyszukuje pliki cookie wewnątrz session_save_path() i unserializes tablicę
  3. uzyskać dostęp to informacji z PHP

Niestety, jedyną rzeczą, klient wie, to ID Sesji, ale które mogą być porwane, na przykład za pomocą kradzieży plików cookie lub innych metod Cross Site Scripting. Gdybym na przykład dostał twoją sesję SO, SO nie wiedziałaby lepiej niż ja. Chyba, że ​​sprawdzą mój IP lub coś w tym stylu.

Powiązane problemy