od jakiegoś już czasu we wszystkich moich projektach używałem sesji jako mechanizmu pamiętającego czy użytkownik się zalogował czy nie.
Ostatnio jednak przyszedł mi do głowy pomysł, że moje rozwiązanie nie jest chyba dobre.
Zasada działania jest bardzo prosta. Wysyłam formularz metodą POST do jakiegoś skryptu, tam sprawdzane jest czy pola zostały wypełnione, porównywane są z jakimś wzorcem (pliki, baza danych, itd.) i w przypadku powodzenia do zmiennej sesyjnej zapisywany jest ID użytkownika, który się zalogował. Wówczas "tajna" część strony zostaje odblokowana poprzez spełnienie prostego warunku (jeżeli zmienna sesyjne jest niepusta to użytkownik jest zalogowany). Przykładowy kod poniżej:
<? //logowanie if($_POST['login'] == 'test' && $_POST['haslo'] == 'test') $_SESSION['logged'] = 5; //przykladowe ID uzytkownika test //dostep do tajnej strony ?>
Moje pytanie jest następujące: czy i na ile jest to bezpieczne rozwiązanie? Jedyną weryfikacją tego czy użytkownik jest zalogowany czy nie jest sprawdzenie zawartości zmiennej sesyjnej $_SESSION['logged'].
Gdyby mechanizm oparty był o COOKIE wówczas bez problemu można byłoby zmienić (ręcznie) wartość COOKIE na dowolną różną od pustej. Jak ma się to w porównaniu z sesjami? O ile dobrze pamiętam, dane sesji zapamiętywane są także w COOKIE?
Proszę o pomoc.
Z góry dzięki, pozdrawiam
Wojtek