Filtre 1.php
Le filtre PHP est utilisé pour valider et filtrer les données provenant de sources non sécurisées, telles que les entrées de l'utilisateur.
2. Qu'est-ce que le filtre PHP
Le filtre PHP est utilisé pour vérifier et filtrer les données provenant de sources non sécurisées.
Tester, valider et filtrer les entrées utilisateur ou les données personnalisées est une partie importante de toute application Web. L'extension de filtre PHP est conçue pour rendre le filtrage des données plus facile et plus rapide
3 Pourquoi utiliser des filtres
Presque toutes les applications Web reposent sur une entrée externe. Ces données proviennent généralement des utilisateurs ou d'autres applications (telles que des services Web). En utilisant des filtres, vous pouvez vous assurer que votre application obtient le bon type d'entrée
Le filtrage des données externes améliorera la sécurité, alors quelles sont les données externes ?
(1).Données d'entrée du formulaire
(2).Cookies
(3).Données des services Web
(4).Variables du serveur
(5). Résultats de la requête de base de données
Fonction et filtre
Pour filtrer les variables, veuillez utiliser l'un des éléments suivants. les fonctions de filtre :
filter_var() - Filtre une seule variable par un filtre spécifié
filter_var_array() - Filtre plusieurs variables par des filtres identiques ou différents Variables
filter_input - Obtient une variable d'entrée et la filtre
filter_input_array - Obtient plusieurs variables d'entrée et les filtre par des filtres identiques ou différents
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
Remarque : lorsque nous écrivons un entier légal, la sortie sera un entier légal. Sinon, le résultat ne sera pas un entier légal
Validation et Désinfection Il existe deux types de filtrage
Filtre de validation :
Utilisé pour valider la saisie de l'utilisateur
Règles de formatage strictes (telles que la validation d'URL ou d'e-mail)
En cas de succès Renvoie le type attendu, ou FALSE en cas d'échec
Filtre de nettoyage :
Utilisé pour autoriser ou interdire les caractères spécifiés dans une chaîne
Aucune règle de format de données
Renvoie toujours la chaîne
Options et les drapeaux
Les options et les drapeaux sont utilisés pour ajouter des options de filtrage supplémentaires au filtre spécifié.
Différents filtres ont des options et des indicateurs différents
<?php header("Content-type: text/html; charset=utf-8");//设置编码 $var=300; $int_options = array( "options"=>array( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)){ echo("不是一个合法的整数"); }else{ echo("是个合法的整数"); } ?>
Remarque : Tout comme le code ci-dessus, les options doivent être placées dans un tableau associé appelé "options". Si vous utilisez des indicateurs, ils n'ont pas besoin d'être dans un tableau. Puisque l'entier est "300", il n'est pas dans la plage spécifiée
Valider la saisie
Essayons de valider la saisie à partir du formulaire, entrez.
La première chose que nous devons faire est de confirmer que les données d'entrée que nous recherchons existent.
Ensuite, nous utilisons la fonction filter_input() pour filtrer les données d'entrée.
Dans l'exemple suivant, la variable d'entrée "email" est passée à la page PHP
<?php header("Content-type: text/html; charset=utf-8");//设置编码 if(!filter_has_var(INPUT_GET, "email")){ echo("没有 email 参数"); }else{ if (!filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)){ echo "不是一个合法的 E-Mail"; }else{ echo "是一个合法的 E-Mail"; } } ?>
Remarque : lorsqu'un formulaire transmet des données, vérifiez d'abord s'il y a des données transmises par get
Ensuite, s'il y a des données transmises, il sera jugé s'il s'agit d'un e-mail légitime
Désinfecter les entrées
Essayons de nettoyer l'URL transmise depuis le formulaire.
Tout d'abord, nous voulons confirmer que les données d'entrée que nous recherchons existent.
Ensuite, nous utilisons la fonction filter_input() pour purifier les données d'entrée.
Dans l'exemple suivant, la variable d'entrée "url" est passée à la page PHP :
<?php header("Content-type: text/html; charset=utf-8");//设置编码 if(!filter_has_var(INPUT_GET, "url")){ echo("没有 url 参数"); }else{ $url = filter_input(INPUT_GET, "url", FILTER_SANITIZE_URL); echo $url; } ?>
Remarque : Vérifiez s'il existe une variable d'entrée "url" de type "GET".
Si cette variable d'entrée existe, nettoyez-la (supprimez les caractères illégaux) et stockez-la dans la variable $url