Ce face htmlspecialchars
Orice text primit de la utilizatori (comentarii, nume, câmpuri de căutare) trebuie trecut prin htmlspecialchars înainte de a fi afișat. Altfel, cineva poate introduce cod JavaScript care rulează în browserul vizitatorilor. Acest atac se numește XSS.
Funcția transformă &, <, >, " și ' în entități HTML, care se afișează ca text, nu se execută.
Parametri
| Parametru | Descriere |
|---|---|
$text |
Textul de protejat. |
$optiuni |
Opțional. Implicit, în PHP 8 sunt convertite și ghilimelele simple și duble. |
$codare |
Opțional. Codarea textului. Implicit UTF-8. |
Ce returnează
Textul sigur pentru afișare în HTML.
Exemple
Exemplul 1: Neutralizarea unui script
<?php
$comentariu = '<script>alert("hack")</script>';
echo htmlspecialchars($comentariu);
Rezultat
<script>alert("hack")</script>
Exemplul 2: Valoare într-un atribut HTML
<?php
$cautare = 'telefon "ieftin"';
echo '<input value="' . htmlspecialchars($cautare) . '">';
Rezultat
<input value="telefon "ieftin"">
Greșeli frecvente
- Afișezi direct
$_GETsau$_POSTcuecho. Este cea mai frecventă vulnerabilitate de securitate în site-urile PHP. - Aplici funcția de două ori și în pagină apare
&. Protejează textul o singură dată, chiar înainte de afișare.
Comenzi înrudite
echo: Afișează unul sau mai multe texte sau valori în pagină.trim: Elimină spațiile (sau alte caractere) de la începutul și sfârșitul unui text.str_replace: Înlocuiește toate aparițiile unui text cu alt text.