Pendant le processus de développement Web, le contenu entré par les utilisateurs est souvent directement utilisé pour l'affichage des pages ou l'interaction de données. Afin d'éviter les problèmes de sécurité tels que l'injection de script malveillante, les développeurs doivent strictement traiter ces données d'entrée. HTMLSpecialCars () est une fonction importante en PHP pour échapper aux caractères spéciaux dans les chaînes, ce qui peut effectivement empêcher les risques de sécurité tels que les XS (attaque de script de site transversal).
string htmlspecialchars(
string $string,
int $flags = ENT_COMPAT | ENT_HTML401,
string $encoding = "UTF-8",
bool $double_encode = true
)
Cette fonction échappe aux caractères spéciaux suivants en tant qu'entités HTML:
Grâce à ces évasions, les scripts malveillants peuvent être effectivement empêchés d'être exécutés dans le navigateur.
$input = '<script>alert("Hello!");</script>';
$output = htmlspecialchars($input);
echo $output;
// Sortir:<script>alert("Hello!");</script>
Dans cet exemple, les balises HTML sont échappées en toute sécurité et le navigateur les exécute en texte brut au lieu de scripts.
$input = 'I\'m "John"';
$output = htmlspecialchars($input, ENT_QUOTES);
echo $output;
// Sortir:I'm "John"
Après avoir défini le paramètre ENT_QUOTES , les devis simples et doubles seront échappés, adaptés à des scénarios tels que la sortie d'attribut.
$input = 'Caractères chinois';
$output = htmlspecialchars($input, ENT_QUOTES, 'GBK');
echo $output;
// Sortir:Caractères chinois
Si le codage de caractères spécifié est cohérent avec le codage réel des données d'entrée, les caractères multi-octets tels que le chinois ne seront pas échappés à tort.
$input = 'special & character';
$output = htmlspecialchars($input, ENT_QUOTES, 'UTF-8', false);
echo $output;
// Sortir:special & character
La définition de $ double_encode sur FALSE peut empêcher les entités échappées d'être codées à nouveau et garder le contenu de sortie lisible.
htmlSpecialChars () est une fonction importante fournie par PHP pour assurer la sortie sûre de la saisie de l'utilisateur sur la page. En définissant raisonnablement les paramètres, différentes exigences d'encodage et d'échappement peuvent être répondues de manière flexible, améliorant efficacement la sécurité de l'application. Dans des scénarios tels que le traitement de la forme de formulaire et la sortie de contenu dynamique, les développeurs sont recommandés pour donner la priorité à l'utilisation de cette fonction pour éviter les attaques XSS potentielles.