Position actuelle: Accueil> Derniers articles> Explication détaillée et application des constantes de filter_sanitize_special_chars en php

Explication détaillée et application des constantes de filter_sanitize_special_chars en php

gitbox 2025-06-14

1. Introduction

Dans le développement Web, le filtrage et la vérification des données saisis par les utilisateurs est la clé pour assurer la sécurité et la stabilité du site Web. PHP fournit une variété de filtres intégrés, et la fonction filter_var () est l'un des outils de filtrage les plus couramment utilisés. Il comprend deux opérations: la désinfection et la validation. Cet article se concentrera sur l'explication de la partie de la désinfection, en particulier la méthode d'utilisation du Filter_Sanitize_special_chars constant et son importance.

2. Filter_var () Fonction

La fonction Filter_Var () intégrée de PHP peut filtrer et vérifier les variables et est un outil courant pour traiter les données d'entrée des utilisateurs. Voici deux utilisations courantes de cette fonction:

2.1 Filtrage d'une seule variable

Lorsque vous devez filtrer une seule variable, vous pouvez utiliser le code suivant:

 $filtered_var = filter_var($var, $filter, $options);

Lorsque $ var est la variable à filtrer, $ filtre est le type de filtre sélectionné et les options $ sont l'option de filtre.

2.2 Filtre plusieurs variables

Si vous devez filtrer plusieurs variables, vous pouvez utiliser le code suivant:

 $filtered_vars = filter_var_array($vars, $filters, $options);

Lorsque $ vars est le tableau de variables à filtrer, $ filtres est le tableau des types de filtres sélectionnés, et $ Options est l'option de filtre en option.

Ensuite, cet article se concentrera sur l'introduction de la section de désinfection.

3. Pièce de désinfection

Le but de la désinfection est de supprimer des caractères qui peuvent provoquer des vulnérabilités de sécurité, en particulier pour empêcher les attaques de scripts inter-sites (XSS). En PHP, les constantes de filtre de désinfection communes sont:

  • Filter_sanitize_string: supprimez les balises HTML et préservez le texte brut.
  • Filter_sanitize_encoded: codage d'URL.
  • Filter_sanitize_special_chars: HTML échappe aux caractères spéciaux.
  • Filter_sanitize_full_special_chars: échappez à tous les caractères spéciaux.

Cet article introduira l'utilisation de la constante Filter_Sanitize_Special_Chars en détail.

4. Utilisation de filter_sanitize_special_chars

La constante Filter_Sanitize_Special_Chars est utilisée pour échapper à HTML d'échappement des caractères spéciaux dans une chaîne, les convertissant ainsi en une représentation HTML sécurisée, évitant les attaques XSS. Voici un exemple d'utilisation de cette constante:

 
$str = "<script>alert('XSS');</script>";
$filtered_str = filter_var($str, FILTER_SANITIZE_SPECIAL_CHARS);
echo $filtered_str; // Sortir <script>alert(&#039;XSS&#039;);</script>

Dans l'exemple ci-dessus, nous définissons une chaîne contenant du code JavaScript. Si la chaîne est sortie directement, elle peut être exécutée, provoquant une attaque XSS. Ce problème peut être effectivement évité en échappant à l'aide de la constante Filter_Sanitize_Special_Chars.

4.1 filter_flag_strip_low et filter_flag_strip_high Options

La constante filter_sanitize_special_chars prend également en charge deux options supplémentaires, filter_flag_strip_low et filter_flag_strip_high, pour supprimer les caractères avec des valeurs ASCII inférieures à 32 et supérieures à 127. Voici un exemple de code utilisant ces options:

 
$str = "abc\n123";
$filtered_str = filter_var($str, FILTER_SANITIZE_SPECIAL_CHARS, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH);
echo $filtered_str; // Sortir abc123

Dans cet exemple, la chaîne contient des ruptures de ligne avec une valeur ASCII inférieure à 32. En utilisant les options ci-dessus, ces caractères illégaux sont supprimés, garantissant ainsi que le résultat de sortie est un "ABC123" sûr.

5. Résumé

La constante Filter_Sanitize_Special_Chars est un puissant outil de désinfection fourni par PHP, qui est utilisé pour échapper aux caractères spéciaux dans une chaîne en représentations sécurisées HTML pour empêcher les attaques XSS. Pour les développeurs de sites Web, la compréhension et l'application de ces constantes de filtre peuvent efficacement améliorer la sécurité de leurs applications. Il est recommandé que les données soient filtrées et vérifiées de manière appropriée lors du traitement de l'entrée des utilisateurs.