Maison > développement back-end > tutoriel php > 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

王林
Libérer: 2023-08-02 14:44:02
original
1390 Les gens l'ont consulté

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!')
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion
  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>
Copier après la connexion

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!
Copier après la connexion
  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'";
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal