Position actuelle: Accueil> Derniers articles> Comment détecter et filtrer l'entrée de l'utilisateur à l'aide des fonctions PHP?

Comment détecter et filtrer l'entrée de l'utilisateur à l'aide des fonctions PHP?

M66 2025-06-07

Comment détecter et filtrer l'entrée de l'utilisateur à l'aide des fonctions PHP?

Les données saisies par les utilisateurs sont inévitables lors du développement de sites Web ou d'applications. Cependant, une contribution non transformée peut contenir des scripts malveillants ou des caractères spéciaux, constituant une menace pour la sécurité du site Web. Pour garantir la sécurité des données, les fonctions PHP appropriées doivent être utilisées pour détecter et filtrer l'entrée de l'utilisateur.

1. Détecter la légalité de l'entrée utilisateur

Avant de traiter les données des utilisateurs, déterminez d'abord si l'entrée existe et répond au format attendu. Les fonctions de détection couramment utilisées comprennent:

  • isset () : détecte si la variable est définie et n'est pas vide.
  • vide () : détecter si la variable est vide. Il est souvent utilisé en combinaison avec TRIM () pour retirer les espaces avant et arrière.
  • is_numeric () : détermine si la variable est un nombre.

Exemple de code:

 if (isset($_POST['username']) && !empty(trim($_POST['username']))) {
    $username = $_POST['username'];
    // Le nom d'utilisateur existe et n'est pas vide,Continuer à traiter
} else {
    // Le nom d'utilisateur est vide,Erreur rapide
}
<p>if (isset($_POST['age']) && is_numeric($_POST['age'])) {<br>
$age = $_POST['age'];<br>
// L&#39;âge est le nombre,Continuer à traiter<br>
} else {<br>
// L&#39;âge est vide ou formaté,Erreur rapide<br>
}

2. Filtrez l'entrée de l'utilisateur pour éviter les attaques malveillantes

La détection ne suffit pas et l'entrée de l'utilisateur doit être filtrée pour empêcher les scripts inter-sites (XSS) et d'autres attaques. Les fonctions de filtrage couramment utilisées sont:

  • htmlSpecialChars () : échappe aux caractères spéciaux, tels que < , > , et, etc., pour empêcher les balises HTML d'être analysées.
  • strip_tags () : bandes les balises HTML et PHP des chaînes.
  • filter_var () : combine des filtres intégrés pour vérifier et filtrer les données, telles que la vérification du format de boîte aux lettres.

Exemple de code:

 $username = htmlspecialchars($_POST['username']); // Échapper aux caractères spéciaux
$bio = strip_tags($_POST['bio']); // RetirerHTMLetPHPÉtiquette
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Format de messagerie correct,Continuer à traiter
} else {
    // Le format de messagerie est incorrect,Erreur rapide
}

3. Gérer en toute sécurité les requêtes de base de données

Lorsque les données d'entrée de l'utilisateur pour la requête de base de données, les attaques d'injection SQL doivent être évitées. Il est recommandé d'utiliser des instructions de prétraitement et des paramètres de liaison:

 // Supposons que la base de données est connectée
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bindParam(1, $username, PDO::PARAM_STR);
$stmt->execute();

Grâce à des instructions de prétraitement, la saisie de l'utilisateur n'intégre pas directement les instructions SQL, évitant ainsi les risques d'injection.

Résumer

L'entrée des utilisateurs ne peut pas être entièrement fiable et les fonctions de détection et de filtrage fournies par PHP doivent être utilisées dans le développement pour assurer la sécurité des données. La détection raisonnable de la légalité d'entrée, le filtrage des caractères malveillants et la combinaison des méthodes de fonctionnement de la base de données sécurisés peuvent efficacement améliorer la sécurité du site Web et protéger la confidentialité des utilisateurs et la sécurité des données.