Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Ochrona przed przechwyceniem i ustawieniem sesji?
xajart
post 21.11.2009, 01:26:22
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Moje pytanie dotyczy się tematu. Jak najlepiej ochronić mechanizm sesji?

Całe dzień dzisiaj szukam po necie materiałów na ten temat i z tych istotniejszych znalazłem coś takiego

1) Ochrona przed ustawieniem sesji

Kod
ini_set('session.ude_only_cookies', true);
session_start();
if (!isset($_SESSION['generated']) || $_SESSION['generated'] < (time()-30)) {
session_regenerate_id();
$_SESSION['generated']=time();
}


Jak dobrze rozumie to co 30 sekund jest generowany nowy PHPSESSID - ten sposób ma utrudniać ustawienie sesji. Ale nie dokońca rozumie cel tego. Rozumie że kiedy zmienia sie ID Sesji, wówczas parametry które są w tej sesji zapisane, komuś z zewnątrz utrudni to dostęp do nich. 

2) Ochrona przed przechwyceniem sesji

Na ten temat wyczytałem że dobrze jest stosować wygenerowane tokeny, ale nie bardzo wiem w jaki sposób wygenerować ten unikalny token i jak to rozwiązać. Rozumie że kiedy np użytkowni loguje się do systemu, skrypt po przejściu przez walidator danych i weryfikacje użytkownika, generuje token, który z kolei ma być dołańczany do wszystkich linków np po przez
Kod
outpu_add_rewrite_var('token', $token);

A dodatkowo w formularzach zamieszczać ten token jako ukryty i potem sprawdzać jego poprawność. 

Tylko nasuwają mi się tutaj pytania w stylu. Jak wygenerować unikalny token? taki który zmieniał by się po określonym czasie i jak przypuszczalnie długi ten czas ma być 1 dzień, tydzień, a może miesiąć. Druga kwestia dotyczy właśnie uniklaności tego tokena, by był genrowany nowy kiedy użytkownik się wyloguje a następnie ponownie zaloguje. Myslałem nad różnymi kwestiami. Jeżeli chciałbym aby np token był generowany raz na dzień, to mógłbym przypuszczalnie zastosować generowanie na podstawie IP (ale jeżeli z systemu będą korzystać osoby w jakiejś wewnętrznej sieci, to nie ma to sensu). Generowanie po nazwie użytkownika, ale kiedy użytkownik się wyloguje i ponownie zaloguje to dalej będzie miał taki sam token. W jaki sposób rozwiązać skrypt generujacy token? Jeżeli będzie generowany np co określony czas nowy, to będzie użytkownika zalogowanego wyrzucać z systemu, wobec tego czy zapisywać go w cookisach? ale ktoś może mieć wyłączone cookisy więc zostają tylko sesje, albo baza danych. Gdzieś czytałem o "tablicy routingu" ale nie bardzo wiem o co z tym chodzi. 


A może w jakiś inny sposób zabezpieczać sesje ?

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 20.06.2025 - 20:48