Filtres PHP - Validation et assainissement

SSL de confiance à partir de seulement 3.44 $
Publicités
Fonctions PHP JSON et Callback

Dans cet article, vous apprendrez quelques sujets PHP utiles selon le titre, les filtres et les fonctions de rappel. Commençons par les filtres.

Filtres PHP

Les filtres PHP sont utilisés pour nettoyer et valider les données d'entrée.

Désinfection: Pour supprimer tous les caractères illégaux des données d'entrée.

Validation: Processus permettant de déterminer si les données d'entrée sont sous une forme appropriée.

Les filtres PHP assurent la désinfection et la validation des données avant d'envoyer la demande.

Pourquoi la désinfection et la validation sont importantes ?

Supposons que vous ayez un champ de saisie sur votre page Web, où l'utilisateur peut saisir son adresse. Les pirates peuvent envoyer n'importe quel script dans ce champ de saisie qui peut aller au serveur via une demande et permettre au pirate de cracker le système, Sanitization ne permet à aucun script de s'exécuter côté serveur.

D'un autre côté, supposons que vous ayez une page Web de connexion, qui nécessite un e-mail et un mot de passe de la part de l'utilisateur. La validation vérifie si le champ d'e-mail est rempli avec un format d'e-mail valide et si la longueur minimale et maximale du champ de mot de passe n'est pas violée.

Extension de filtre PHP

L'extension de filtre PHP est conçue pour rendre la validation des données plus rapide et plus facile. L'extension de filtre PHP contient de nombreuses fonctions intégrées qui permettent de vérifier facilement les données d'entrée.

liste_filtre La fonction en PHP renvoie toutes les fonctions disponibles dans l'extension de filtre.

 <?php
  foreach (filter_list() as $id =>$filter) {
    echo '<tr><td>' . $filter . '</td><td>' . filter_id($filter) . '</td></tr>';
  }
  ?>

Quelles sont les sources où la filtration des données est requise ?

Les sources suivantes peuvent entrer des données en externe et doivent être filtrées.

  • Champs de saisie dans un formulaire
  • Cookies
  • Données des services Web
  • Variables de serveur
  • Résultats des requêtes de base de données

Fonction Filter_var en PHP

Cette fonction nettoie et filtre à la fois les données stockées dans la variable. Il accepte deux paramètres. Le premier paramètre est la variable sur laquelle vous souhaitez appliquer le filtre. Le deuxième paramètre est le type de filtre à appliquer à la variable. Nous allons maintenant apprendre quelques types de filtres importants disponibles en PHP.

Comment désinfecter une chaîne en PHP ?

Le filtre FILTER_SAnitIZE_STRING supprime toutes les balises HTML de la chaîne. Les attaquants Web peuvent envoyer des scripts dans le cadre des attributs de la balise HTML. Par conséquent, les balises HTML sont nuisibles à autoriser dans la chaîne. Regardez l'exemple suivant.

<?php
$str = "<h1>Hello World!</h1>";
$newstr = filter_var($str, FILTER_SANITIZE_STRING);
echo $newstr;
?>

Comment valider un entier en PHP ?

FILTER_VALIDATE_INT vérifie si le nombre est un entier ou non. Le deuxième paramètre contient le filtre de la fonction filer_var et le premier paramètre contient le nombre. Parcourez l'exemple ci-dessous.

SSL de confiance à partir de seulement 3.44 $
Publicités
<?php
$int = 100;

if (!filter_var($int, FILTER_VALIDATE_INT) === false) {
  echo("Integer is valid");
} else {
  echo("Integer is not valid");
}
?>

Remarque : La fonction filter_var avec FILTER_VALIDATE_INT considère 0 comme un nombre non entier. Ainsi, si vous devez inclure 0 dans les entiers, vous pouvez modifier la condition if de l'exemple ci-dessus pour autoriser le 0.

Comment valider les adresses IP en PHP ?

FILTER_VALIDATE_IP le filtre vérifie l'adresse IP valide. Le premier paramètre est l'adresse IP et le deuxième paramètre est le nom du filtre dans la fonction filter_var.

<?php
$ip = "127.0.0.1";

if (!filter_var($ip, FILTER_VALIDATE_IP) === false) {
  echo("$ip is a valid IP address");
} else {
  echo("$ip is not a valid IP address");
}
?>

Comment désinfecter et valider les e-mails en PHP ?

filter_var effectue à la fois la validation et la désinfection des e-mails transmis en tant que deuxième paramètre à cette fonction. Pour nettoyer l'e-mail, utilisez FILTER_SAnitIZE_EMAIL d'abord avec la fonction filer_var, puis pour la validation de l'e-mail, utilisez FILTER_VALIDATE_EMAIL filtre. Regardez l'exemple ci-dessous.

<?php
$email = "john.doe@example.com";

// Remove all illegal characters from email
$email = filter_var($email, FILTER_SANITIZE_EMAIL);

// Validate e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
  echo("$email is a valid email address");
} else {
  echo("$email is not a valid email address");
}
?>

Comment désinfecter l'URL en PHP ?

Passez l'URL comme premier paramètre à la fonction filer_var et FILTER_VALIDATE_URL comme deuxième paramètre. Cela supprimera tous les caractères illégaux de l'URL. C'est très utile pour filtrer.

<?php
$url = "https://www.w3schools.com";

// Remove all illegal characters from a url
$url = filter_var($url, FILTER_SANITIZE_URL);

// Validate url
if (!filter_var($url, FILTER_VALIDATE_URL) === false) {
  echo("$url is a valid URL");
} else {
  echo("$url is not a valid URL");
}
?>

Qu'est-ce qu'une exception et comment lancer une exception en PHP ?

Une exception est un objet qui indique qu'une erreur s'est produite lors de l'exécution du script. Les fonctions et classes PHP lancent des exceptions et les fonctions définies par l'utilisateur peuvent également lancer des exceptions.

Les exceptions sont un moyen efficace d'arrêter une fonction sans produire de mauvais résultats à la fin.

, renversement le mot-clé envoie des exceptions. Essayez la capture block capture les exceptions levées par le bloc de code. Si les exceptions ne sont pas capturées, cela donnera une erreur fatale d'exception non capturée.

Essayez block se compose du bloc de code permettant l'exécution. Attraper Le bloc s'exécute uniquement lorsque le bloc try lève une exception. Vous pouvez obtenir des informations sur l'exception dans le bloc catch en utilisant l'objet exception. Regardez l'exemple suivant dans lequel la division par 0 exception est levée et capturée dans le bloc catch.

<?php
function divide($dividend, $divisor) {
  if($divisor == 0) {
    throw new Exception("Division by zero");
  }
  return $dividend / $divisor;
}

try {
  echo divide(5, 0);
} catch(Exception $e) {
  echo "Unable to divide.";
}
?>

Pour une référence complète aux filtres, vous pouvez vous référer ici.

Fonctions PHP JSON et Callback
close

Restez à jour sur PHP !

Nous ne spammons pas !

SSL de confiance à partir de seulement 3.44 $
Publicités

en English
X
Remonter en haut