Bezpieczeństwo i projekt końcowy

Hashowanie haseł, ochrona przed XSS i CSRF, bezpieczne sesje, sekrety poza repo — i projekt finalny spinający OOP, PDO i bezpieczeństwo.

  1. Hashowanie haseł — password_hash i password_verify Nigdy nie przechowuj haseł w zwykłym tekście ani md5. Używaj password_hash (bcrypt/argon2) i password_verify — PHP robi resztę za ciebie.
  2. XSS i CSRF — ochrona formularzy i wyjścia XSS blokujesz przez htmlspecialchars na każdym wyjściu. CSRF blokujesz tokenem sesyjnym porównanym przez hash_equals. Oba są obowiązkowe.
  3. Bezpieczne sesje — session_regenerate_id i ochrona tras Chroń sesję przez session_regenerate_id(true) po logowaniu, weryfikuj użytkownika na każdej stronie i niszczyj sesję przy wylogowaniu.
  4. Sekrety poza repozytorium — .env i config.php Hasła do bazy, klucze API i inne sekrety nigdy nie trafiają do repo. Trzymaj je w pliku .env lub config.php i blokuj przez .gitignore.
  5. Projekt końcowy cz. 1 — baza danych i rejestracja Postaw aplikację Moje Zadania: schemat bazy (users + zadania), klasa połączenia PDO, rejestracja z password_hash — krok po kroku.
  6. Projekt końcowy cz. 2 — logowanie, sesje i CRUD zadań Dodaj logowanie z session_regenerate_id, ochronę tras, CRUD zadań przez prepared statements i token CSRF w każdym formularzu. Kompletna aplikacja.
  7. Co dalej? — mapa dalszej nauki PHP Masz solidne fundamenty PHP. Kolejne kroki: Laravel i frameworki, wzorzec MVC, REST API, Git, testy PHPUnit i Composer w praktyce.