Filtres PHP – PHPGurukul


Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées, comme les entrées utilisateur.

Qu’est-ce qu’un filtre PHP?

Un filtre PHP est utilisé pour valider 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.

Pourquoi utiliser un filtre?

Presque toutes les applications Web dépendent d’une entrée externe. Habituellement, cela provient d’un utilisateur ou d’une autre application (comme un service Web). En utilisant des filtres, vous pouvez être sûr que l’application obtient la bonne entrée.

Vous devez toujours filtrer toutes les données externes!

Le filtrage des entrées est l’un des problèmes de sécurité des applications les plus importants.

Qu’est-ce que les données externes?

  • Saisie de données à partir d’un formulaire
  • Biscuits
  • données des services Web
  • Variables serveur
  • Résultats des requêtes de base de données

Fonctions et filtres

Pour filtrer disponible, utilisez l’une des fonctions de filtrage suivantes:

  • filter_var () – Filtrez une seule variable avec un filtre spécifié.
  • filter_var_array () – Filtrez plusieurs variables avec des filtres identiques ou différents.
  • filter_input () – Obtenez une variable d’entrée et filtrez-la.
  • filter_input_array – Obtenez plusieurs variables d’entrée et filtrez-les avec des filtres identiques ou différents.

Exemple, nous validons un entier en utilisant le filter_var () une fonction:

Le code ci-dessus utilise le "FILTER_VALIDATE_INT" filtre pour filtrer la variable. Puisque l'entier est valide,

Production:
«Le nombre entier est valide»

Si nous essayons avec une variable qui n'est pas un entier (comme «a1bc2»), la sortie sera: «L'entier n'est pas valide».

lire plus  Projet de location de voitures en PHP et Mysql, système de gestion de location de voitures en ligne en PHP

Validation et désinfection

Il existe deux types de filtre:

Validation des filtres:

  • Sont utilisés pour valider l'entrée utilisateur
  • Règles de formatage strictes (comme la validation d'URL ou d'e-mail)
  • Renvoie le type attendu en cas de succès ou FALSE en cas d'échec

Filtres désinfectants:

  • Sont utilisés pour autoriser ou interdire les caractères spécifiés dans une chaîne.
  • Pas de règles de format de données.
  • Renvoie toujours la chaîne.

Options et drapeaux

Les options et drapeaux sont utilisés pour ajouter des options de filtrage supplémentaires aux filtres spécifiés. Différents filtres ont différentes options et drapeaux.

Exemple, nous validons un entier en utilisant le filter_var () et les options "min_range" et "max_range":

array
(
"min_range"=>0,
"max_range"=>256
)
);
if(!filter_var($var,FILTER_VALIDATE_INT,$int_options)){
echo "Integer is not valid";
} else {
echo "Integer is valid";
}

Comme le code ci-dessus, les options doivent être placées dans un tableau associatif avec le nom «options». Si un indicateur est utilisé, il n'a pas besoin d'être dans un tableau.

Puisque l'entier est «300», il n'est pas dans la plage spécifiée et la sortie du code ci-dessus sera: «L'entier n'est pas valide».

Valider l'entrée

Essayons de valider la saisie à partir d'un formulaire.

La première chose que nous devons faire est de confirmer que les données d'entrée que nous recherchons existent. Ensuite, nous filtrons les données d'entrée à l'aide de la fonction filter_input ().

Exemple, la variable d'entrée «email» est envoyée à la page PHP:

Exemple expliqué

Dans l'exemple ci-dessus, une entrée (e-mail) lui a été envoyée à l'aide de la méthode «GET»:

  1. Vérifiez s'il existe une variable d'entrée «e-mail» de type «GET».
  2. Si la variable d'entrée existe, vérifiez s'il s'agit d'une adresse e-mail valide.

Sanitize Input

Essayons de nettoyer une URL envoyée à partir d'un formulaire. Tout d'abord, nous confirmons que les données d'entrée que nous recherchons existent. Ensuite, nous nettoyons les données d'entrée en utilisant la fonction filter_input ().

Exemple ci-dessous, la variable d'entrée "URL" est envoyée à la page PHP:

Exemple expliqué

L'exemple ci-dessus a une entrée (URL) qui lui est envoyée en utilisant la méthode «POST»:

  1. Vérifiez si l'entrée «URL» du type «POST» existe.
  2. Si la variable d'entrée existe, désinfectez (supprimez les caractères non valides) et stockez-la dans la variable $ url.

Si la variable d'entrée est une chaîne comme celle-ci "http://www.google.com/", la variable $ url après la désinfection ressemblera à ceci: http://google.com/

Filtrer plusieurs entrées

Un formulaire se compose presque toujours de plusieurs champs de saisie. Pour éviter d'appeler les fonctions filter_var ou filter_input encore et encore, nous pouvons utiliser les fonctions filter_var_array ou filter_input_array.

Exemple:- Dans cet exemple, nous utilisons la fonction filter_input_array () pour filtrer trois variables GET. Les variables GET reçues sont un nom, un âge et une adresse e-mail:

array
(
"filter"=>FILTER_SANITIZE_STRING),
"age"=>array
(
"filter"=>FILTER_VALIDATE_INT,
"options"=>array
(
"min_range"=>1,
"max_range"=>120
)),
"email"=>FILTER_VALIDATE_EMAIL
);
$result=filter_input_array(INPUT_GET,$filters);
if(!$result["age"])
{
echo  "Age must be a number between 1 and 120.
"; } elseif(!$result["email"]) { echo "Email is not valid.
"; } else { echo "User input is valid"; }


Exemple expliqué

L'exemple ci-dessus a trois entrées (nom, âge et e-mail) qui lui sont envoyées en utilisant la méthode "GET":

  1. Définissez un tableau contenant le nom des variables d'entrée et les filtres utilisés sur les variables d'entrée spécifiées.
  2. Appelez la fonction filter_input_array () avec les variables d'entrée GET et le tableau que nous venons de définir.
  3. Vérifiez la variable «age» et «email» dans la variable $ result pour les entrées invalides. (Si l'une des variables d'entrée n'est pas valide, cette variable d'entrée sera FAUX après la fonction filter_input_array ())

Le deuxième paramètre de la fonction filter_input_array () peut être un tableau ou un ID de filtre unique. Si le paramètre est un ID de filtre unique, toutes les valeurs du tableau d'entrée sont filtrées par le filtre spécifié.

Si le paramètre est un tableau, il doit suivre ces règles:

  • Doit être un tableau associatif contenant des variables d'entrée comme clé de tableau (comme la variable d'entrée «age»)
  • La valeur du tableau doit être un ID de filtre ou un tableau spécifiant le filtre, les indicateurs et les options.

Utilisation du rappel de filtre

Il est possible d'appeler une fonction définie par l'utilisateur et de l'utiliser comme filtre à l'aide du filtre FILTER_CALLBACK. De cette façon, nous avons un contrôle total sur le filtrage des données.

Vous pouvez créer votre propre fonction définie par l'utilisateur ou utiliser une fonction PHP existante. la fonction que vous souhaitez utiliser pour filtrer est spécifiée de la même manière qu'une option est spécifiée. Dans un tableau associatif avec le nom «options»

Dans l'exemple ci-dessous, nous utilisons une fonction créée par l'utilisateur pour convertir tous les «_» en espaces blancs:

"convertSpace"));
?>

Production

Salut comment ca va

Exemple expliqué

L'exemple ci-dessus convertit tous les «_» en espaces blancs:

  1. Créez une fonction pour remplacer «_» par des espaces.
  2. Appelez la fonction filter_var () avec le filtre FILTER_CALLBACK et un tableau contenant notre fonction.

Tutoriels recommandés pour vous




Telecharger ici

Laisser un commentaire

Aller au contenu principal