Maison  >  Article  >  développement back-end  >  Fonction PHP filter_var() : filtrer et valider les entrées de l'utilisateur

Fonction PHP filter_var() : filtrer et valider les entrées de l'utilisateur

PHPz
PHPzoriginal
2023-06-27 08:53:53951parcourir

Lors du développement d'applications Web, les données saisies par l'utilisateur sont souvent utilisées dans les requêtes de bases de données, les E/S de fichiers, l'envoi d'e-mails, etc. Cependant, les données saisies par l'utilisateur ne sont pas fiables car l'utilisateur peut saisir des données illégales, telles que l'injection SQL, les attaques de cross-site scripting, l'exécution de commandes à distance, etc. Ces problèmes peuvent conduire à des failles de sécurité dans l'application. Par conséquent, les données saisies par l'utilisateur doivent être filtrées et validées avant de pouvoir être utilisées pour les opérations nécessaires. PHP fournit une fonction filter_var() qui peut filtrer et valider efficacement les données saisies par l'utilisateur.

La fonction filter_var() fournit un ensemble de filtres qui peuvent être utilisés pour valider, filtrer et transformer différents types de données. Ces filtres sont définis comme des constantes et peuvent être combinés selon les besoins. Par exemple, vous pouvez utiliser le filtre FILTER_SANITIZE_STRING pour supprimer toutes les balises et caractères spéciaux d'une chaîne.

Voici quelques-uns des filtres les plus couramment utilisés :

  • FILTER_VALIDATE_EMAIL est utilisé pour vérifier la validité des adresses e-mail
  • FILTER_VALIDATE_INT est utilisé pour vérifier les entiers, et la plage de valeurs des entiers peut être spécifiée
  • FILTER_VALIDATE_FLOAT est utilisée pour vérifier les nombres à virgule flottante
  • FILTER_VALIDATE_ IP pour vérifier l'adresse IP
  • FILTER_VALIDATE_URL est utilisé pour vérifier la légitimité de l'URL

Une fois le filtre à utiliser déterminé, la fonction filter_var() peut filtrer et vérifier les données saisies par l'utilisateur, tels que :

$name = filter_var($_POST['name'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if (!$email) {
     echo "Invalid email address";
}

Dans l'exemple ci-dessus, $_POST['name'] et $_POST['email'] sont des données soumises via le formulaire. Le premier filtre supprimera toutes les balises et caractères spéciaux de la valeur saisie, et le deuxième filtre vérifiera la validité de l'adresse e-mail. Si l'adresse e-mail n'est pas valide, le message « Adresse e-mail invalide » s'affiche.

La fonction filter_var() peut également être utilisée pour filtrer et vérifier les valeurs d'un tableau. Par exemple :

$data = array(
     'name' => 'John Smith',
     'age' => '30',
     'email' => 'john.smith@example.com'
);

$filteredData = filter_var_array($data, array(
     'name' => FILTER_SANITIZE_STRING,
     'age' => array(
          'filter' => FILTER_VALIDATE_INT,
          'options' => array(
               'min_range' => 18,
               'max_range' => 100
          )
     ),
     'email' => FILTER_VALIDATE_EMAIL
));

Dans l'exemple ci-dessus, le tableau $data contient des données d'entrée utilisateur. La fonction filter_var_array() filtrera et vérifiera le tableau et renverra un nouveau tableau $filteredData. Chaque valeur est filtrée et validée à l'aide de filtres appropriés. Par exemple, la valeur d'âge serait validée à l'aide de FILTER_VALIDATE_INT et du tableau d'options pour garantir que la valeur est comprise entre 18 et 100.

En plus des filtres mentionnés ci-dessus, la fonction filter_var() possède d'autres filtres utiles. Par exemple, FILTER_SANITIZE_NUMBER_INT est utilisé pour supprimer tous les caractères d'une chaîne à l'exception des chiffres et des signes plus/moins. FILTER_SANITIZE_SPECIAL_CHARS est utilisé pour supprimer les balises HTML et PHP des chaînes et des guillemets d'échappement.

Pour résumer, la sécurité des applications Web est cruciale et les données saisies par les utilisateurs sont souvent l'un des facteurs vulnérables. La fonction filter_var() peut être utilisée pour filtrer et vérifier efficacement les données saisies par l'utilisateur afin de garantir l'intégrité et la sécurité des données. En utilisant les filtres appropriés, vous pouvez facilement valider les adresses e-mail, les nombres entiers et les nombres à virgule flottante, filtrer les balises dans les chaînes, supprimer les caractères spéciaux, etc.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn