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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.