Maison  >  Article  >  développement back-end  >  Principes de codage sécurisé PHP : Comment filtrer et échapper aux entrées de l'utilisateur à l'aide de la fonction filter_var

Principes de codage sécurisé PHP : Comment filtrer et échapper aux entrées de l'utilisateur à l'aide de la fonction filter_var

王林
王林original
2023-08-02 14:42:191324parcourir

Principes de codage sécurisé PHP : Comment filtrer et échapper aux entrées de l'utilisateur à l'aide de la fonction filter_var

Citation :
La sécurité est un facteur crucial lors du développement d'applications Web. Le filtrage et l'échappement des entrées utilisateur constituent une étape critique pour empêcher l'injection SQL, les attaques de scripts intersites et d'autres vulnérabilités de sécurité. En PHP, le filtrage et l'échappement des entrées utilisateur peuvent être facilement réalisés à l'aide de la fonction filter_var. Cet article vous expliquera comment utiliser correctement la fonction filter_var pour protéger vos applications PHP.

  1. Qu'est-ce que la fonction filter_var ?
    La fonction filter_var est une fonction de filtrage puissante en PHP, utilisée pour filtrer et vérifier différents types de données. En utilisant différents filtres, nous pouvons filtrer et valider les données saisies par l'utilisateur, garantissant ainsi leur sécurité.
  2. Filtrage des entrées utilisateur
    Le filtrage des entrées utilisateur est une étape importante dans la sécurisation de votre application Web. Lorsque l’entrée de l’utilisateur est reçue, nous devons la filtrer pour éliminer d’éventuels codes ou caractères malveillants. Voici quelques filtres et exemples de code couramment utilisés :

a) FILTER_SANITIZE_STRING : filtre les balises HTML et PHP dans les chaînes.

$input = "<script> alert('XSS attack!') </script>"
$clean_input = filter_var($input, FILTER_SANITIZE_STRING);
echo $clean_input; // 输出:alert('XSS attack!')

b) FILTER_SANITIZE_EMAIL : Supprimez tous les caractères sauf les lettres, les chiffres et @ de la chaîne.

$email = "john.doe@example.com";
$clean_email = filter_var($email, FILTER_SANITIZE_EMAIL);
echo $clean_email; // 输出:john.doe@example.com

c) FILTER_SANITIZE_URL : Supprime tous les caractères de la chaîne sauf les lettres, les chiffres et :/.?=&.

$url = "http://example.com/?q=test";
$clean_url = filter_var($url, FILTER_SANITIZE_URL);
echo $clean_url; // 输出:http://example.com/?q=test
  1. Échapper aux entrées utilisateur
    En plus de filtrer les entrées utilisateur, nous devons également échapper aux entrées utilisateur pour empêcher les attaques de scripts intersites. Voici quelques fonctions d'échappement et exemples de codes couramment utilisés :

a) Fonction htmlspecialchars : convertit les caractères spéciaux en entités HTML.

$input = "<script> alert('XSS attack!') </script>";
$escaped_input = htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
echo $escaped_input; // 输出:<script> alert('XSS attack!') </script>

b) fonction addlashes : ajoute des barres obliques inverses avant certains caractères dans une chaîne.

$input = "It's a beautiful day!";
$escaped_input = addslashes($input);
echo $escaped_input; // 输出:It's a beautiful day!
  1. Application complète de filtrage et d'échappement des entrées utilisateur
    Dans le développement réel, nous devons généralement appliquer de manière globale des méthodes de filtrage et d'échappement des entrées utilisateur. Voici un exemple de code pour une application complète :
$username = $_POST['username'];
$password = $_POST['password'];

$clean_username = filter_var($username, FILTER_SANITIZE_STRING);
$clean_password = addslashes($password);

// 在数据库查询前使用转义后的数据
$query = "SELECT * FROM users WHERE username='$clean_username' AND password='$clean_password'";

Résumé :
En utilisant la fonction filter_var, nous pouvons filtrer et échapper facilement et efficacement aux entrées de l'utilisateur, améliorant ainsi la sécurité des applications Web. Lors du traitement des entrées utilisateur, nous devons toujours utiliser des méthodes de filtrage et d'échappement pour empêcher l'injection SQL, XSS et d'autres vulnérabilités de sécurité courantes.

Veuillez noter que dans le développement réel, le filtrage et l'échappement des entrées utilisateur ne constituent que la première ligne de défense pour protéger votre application. Nous devons également utiliser d'autres mesures de sécurité telles que la validation des entrées, l'utilisation d'instructions préparées, etc. Ce n'est qu'en appliquant plusieurs mesures de sécurité combinées que nous pouvons garantir que nos applications sont aussi sécurisées que possible.

Lecture approfondie :

  • [PHP : fonction filter_var](https://www.php.net/manual/zh/function.filter-var.php)
  • [PHP : fonction htmlspecialchars](https:// www.php.net/manual/zh/function.htmlspecialchars.php)
  • [PHP : fonction addlashes](https://www.php.net/manual/zh/function.addslashes.php)

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