htmlspecialchars
funkcja
Zamienia znaki specjalne HTML na encje — kluczowa ochrona przed XSS. Używaj zawsze przy wyświetlaniu danych od użytkownika.
htmlspecialchars(string $string, int $flags = ENT_QUOTES|ENT_SUBSTITUTE|ENT_HTML401, ?string $encoding = null, bool $double_encode = true): string
htmlspecialchars konwertuje znaki specjalne HTML (<, >, &, ", ') na bezpieczne encje (<, >, &, ", '). To podstawowa ochrona przed atakami XSS (Cross-Site Scripting) — zawsze używaj jej, gdy wyświetlasz dane pochodzące od użytkownika lub z zewnętrznego źródła.
<?php
declare(strict_types=1);
$wejscie = '<script>alert("hack")</script>';
// BEZ htmlspecialchars — niebezpieczne (przeglądarka wykona skrypt!):
// echo $wejscie;
// Z htmlspecialchars — bezpieczne:
echo htmlspecialchars($wejscie, ENT_QUOTES, 'UTF-8');
// wynik: <script>alert("hack")</script>
// Najczęstszy wzorzec przy wyświetlaniu danych z formularza:
$imie = $_POST['imie'] ?? '';
echo htmlspecialchars($imie, ENT_QUOTES, 'UTF-8');