Skip to content

Rola sesji w aplikacjach webowych

This content is not available in your language yet.

Sesje w aplikacjach webowych

HTTP jest protokołem bezstanowym - każde zapytanie jest niezależne i serwer nie pamięta poprzednich interakcji. Sesje rozwiązują ten problem, pozwalajac na przechowywanie informacji o uzytkowniku miedzy kolejnymi zadaniami. Sa fundamentem systemow logowania, koszykow zakupowych i personalizacji.

  • Autentykacja - sesje sa podstawa systemow logowania
  • Stan aplikacji - pozwalaja pamiętać wybory użytkownika
  • Bezpieczeństwo - zrozumienie sesji to zrozumienie potencjalnych atakow
  1. Rozumiec dlaczego HTTP potrzebuje mechanizmu sesji
  2. Umiec wyjaśnić jak działa identyfikator sesji i gdzie jest przechowywany
  3. Potrafic pokazac tworzenie, użycie i niszczenie sesji w PHP
  4. Wiedzieć, jak chronić sesje przed atakami (hijacking, fixation)
  1. Bezstanowość HTTP

    • Każde zapytanie jest niezależne
    • Problem z utrzymaniem stanu użytkownika
  2. Czym jest sesja

    • Mechanizm przechowywania danych po stronie serwera
    • Identyfikator sesji (session ID)
    • Powiazanie z cookie PHPSESSID
  3. Implementacja w PHP

    • session_start() - inicjalizacja sesji
    • $_SESSION - tablica do przechowywania danych
    • session_destroy() - niszczenie sesji
  4. Zagrożenia bezpieczeństwa

    • Session hijacking (przejecie sesji)
    • Session fixation (wymuszenie ID sesji)
    • Metody ochrony

Przykład 1

Inicjalizacja sesji - session_start() na początku skryptu

Przykład 2

Zapis danych - zapisywanie do $_SESSION (np. dane użytkownika)

Przykład 3

Odczyt danych - sprawdzanie czy użytkownik jest zalogowany

Przykład 4

Zniszczenie sesji - poprawne wylogowanie użytkownika

  • Regeneracja ID sesji (session_regenerate_id)
  • Konfiguracja sesji w php.ini
  • Przechowywanie sesji w bazie danych
  • Sesje a skalowalnosc aplikacji
  • Porownanie sesji z tokenami (JWT)
  1. Wstep (0.5 strony) - HTTP jako protokół bezstanowy
  2. Idea sesji (1 strona) - co to jest, jak działa, session ID
  3. Implementacja w PHP (1.5 strony) - funkcje, przykłady kodu
  4. Zagrożenia bezpieczeństwa (1 strona) - hijacking, fixation, ochrona
  5. Dobre praktyki (0.5 strony) - zasady bezpiecznego uzywania sesji
  6. Podsumowanie (0.5 strony)
  7. Bibliografia
  1. Dlaczego sesja wymaga cookie w przegladarce?
  2. Co się stanie, jeśli nie wywołasz session_start()?
  3. Jak zabezpieczyć sesje przed przejęciem?
  4. Czym rozni się sesja od cookies?
  5. Co to jest session fixation i jak go uniknac?
  6. Kiedy należy regenerowac ID sesji?

To więcej niz praca zaliczeniowa

Opracowanie tego tematu to szansa, by naprawde zrozumiec jak aplikacje webowe pamietaja użytkowników i ich dane.

Wykorzystaj lekcje - konsultuj watpliwosci, pokazuj postepy! Pracuj iteracyjnie - outline -> draft -> kod -> redakcja