Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Pyt. odnośnie sesji
nait
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 30.03.2009

Ostrzeżenie: (0%)
-----


Witam, trochę szukałem na ten temat aczkolwiek nic ciekawego nie znalazłem. Mianowicie mam sprawdzenie poprawności sesji
  1.  
  2. function SessionAuth() {
  3. if (!(isset($_SESSION['auth']) && isset($_SESSION['user']) && $_SESSION['user_ip'] && $_SESSION['user_browser'] &&
  4. 1 == $_SESSION['auth'] && $_SESSION['user_ip'] == IP() && $_SESSION['user_browser'] == $_SERVER['HTTP_USER_AGENT'])) {
  5. $_SESSION['reports']['message'] = 'Nie jesteś zalogowany';
  6. $_SESSION['reports']['type'] = 'info';
  7. header ('Location: login.php');
  8. }
  9. }


I sprawdzenie wykonuje na każdej jakby głównej stronie, ale co z includowanymi plikami z trescią, funkcjami, połączeniem itd? W każdym jednym powinienem sprawdzać czy ktoś jest zalogowany czy nie? Chodzi mi tu głównie o sytuację gdy ktoś wpiszę w przeglądarkę bezpośredni link do jakiegoś tam includowanego pliczku typu inc/cos.php itp itd.
Dodam, że to taki mały panel admina więc osoba niezalogowana nie powinna nic widzieć.

A drugie pytanie, gdy wylogowuję użyć ession_unset() i session_destroy() czy np wystarczy unset zmienne sesyjne, które zapisałem?

Jeszcze jedno pytanko (IMG:style_emoticons/default/tongue.gif) Jak lepiej czyścić tablicę komunikatów, unset($_SESSION['reports']) czy po prostu $_SESSION['reports'] = array();

Ten post edytował nait 26.09.2011, 23:24:55
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nait
post
Post #2





Grupa: Zarejestrowani
Postów: 41
Pomógł: 3
Dołączył: 30.03.2009

Ostrzeżenie: (0%)
-----


Dzięki wielkie, przerobie wedle potrzeb.
Kolejne pytanie (IMG:style_emoticons/default/wstydnis.gif)

  1. function SessionAuth() {
  2. if (!(isset($_SESSION['auth']) && isset($_SESSION['user']) && $_SESSION['user_ip'] && $_SESSION['user_browser'] &&
  3. 1 === $_SESSION['auth'] && $_SESSION['user_ip'] === IP() && $_SESSION['user_browser'] === $_SERVER['HTTP_USER_AGENT'])) {
  4. session_regenerate_id(); // <--- ?
  5. $_SESSION['reports']['message'] = 'Nie jesteś zalogowany';
  6. $_SESSION['reports']['type'] = 'info';
  7. header ('Location: login.php');
  8. }
  9. }


Tak czytałem o bezpieczeństwu sesji i nie wiem czy dobrze zakumałem, ale jeśli autoryzacja nie powiodła się powinienem wygenerować nowe id sesji przy pomocy session_regenerate_id();?
Czy tylko przy inicjowaniu jej tak jak miałem dotychczas czyli:
  1. // jakis tam kod
  2. $_SESSION['id'] = session_id();
  3. $_SESSION['auth'] = 1;
  4. $_SESSION['user'] = $login;
  5. $_SESSION['user_ip'] = IP();
  6. $_SESSION['user_browser'] = $_SERVER['HTTP_USER_AGENT'];
  7. header ('Location: admin.php');




Edit: tak patrze na inne cmsy i czy jest sens blokowania innych includowanych plikow?

Ten post edytował nait 27.09.2011, 20:50:18
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 14:08