Bezpieczeństwo w PHP i SQL – najlepsze praktyki

Sprawdź, jak chronić aplikacje webowe przed SQL Injection, XSS, wykrywać błędy i programować zgodnie z zasadami bezpieczeństwa INF.03!

Dlaczego bezpieczeństwo jest kluczowe?

Brak ochrony kodu prowadzi do wycieków danych, ataków i problemów z zaliczeniem INF.03. Na egzaminie praktycznym musisz stosować bezpieczne praktyki – w szkole i w realnych projektach!

Prepared statements – jak działa bezpieczne zapytanie?

Przykład PHP/MySQLi:
$stmt = $mysqli->prepare("SELECT * FROM uzytkownicy WHERE email = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
        

Prepared statements uniemożliwiają ataki typu SQL Injection (dodanie złośliwego kodu przez użytkownika).

Walidacja i filtrowanie danych wejściowych

Atak SQL Injection – jak go wykryć?

Zły przykład:
$sql = "SELECT * FROM uzytkownicy WHERE email = '$email'";
        

Jeśli ktoś wpisze w pole e-mail: ' OR 1=1 -- otrzyma dostęp do wszystkich rekordów! Nigdy nie korzystaj z zapytań złożonych z niezabezpieczonych danych użytkownika.

Ochrona przed XSS (Cross Site Scripting)

Pamiętaj: lepiej wyświetlić tekst bez formatowania niż umożliwić atak na stronę!

Bezpieczne sesje i logowanie użytkownika

  1. Używaj session_start() zawsze na górze pliku
  2. Przechowuj jak najmniej danych w sesji, nie “hasło”!
  3. Regeneruj identyfikator sesji po zalogowaniu session_regenerate_id()
  4. Ustal limit ważności sesji (np. 30 minut nieaktywności)

Podsumowanie dobrych praktyk

Zadania egzaminacyjne INF.03 wymagają bezpiecznego kodu! Pamiętaj: prepared statements, walidacja, XSS — to podstawa każdego projektu webowego.

← Powrót do listy artykułów