Maison > développement back-end > tutoriel php > Désinfecter et valider les données avec les filtres PHP

Désinfecter et valider les données avec les filtres PHP

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-02-27 09:55:14
original
139 Les gens l'ont consulté

Sanitize and Validate Data With PHP Filters

La validation efficace des données est cruciale pour les formulaires Web sécurisés et robustes. Les données non valides peuvent créer des vulnérabilités de sécurité et des dysfonctionnements du site Web. Ce tutoriel montre comment la fonction de PHP filter_var désinfecte et valide efficacement les entrées utilisateur, empêchant ces problèmes.

Pourquoi la désinfection des données est souvent négligée

De nombreux développeurs trouvent la validation des données fastidieuse, impliquant souvent:

  • Comparaisons exhaustives avec chaque variation d'entrée imaginable.
  • Création des expressions régulières complexes pour gérer toutes les possibilités.
  • ou une combinaison des deux, conduisant à des travaux longs et à un taux d'erreur élevé.

Heureusement, PHP propose une solution rationalisée.

Tiration de fonctions de PHP filter_var

La fonction

PHP filter_var simplifie le processus. Sa syntaxe est:

filter_var( mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0 ): mixed
Copier après la connexion
  • $value: les données à filtrer.
  • $filter: L'ID du filtre (par exemple, FILTER_SANITIZE_EMAIL, FILTER_VALIDATE_INT).
  • $options: Paramètres facultatifs pour la personnalisation du filtre. Renvoie FALSE en cas de défaillance du filtre.

Données de désinfection avec filter_var

Saisition par e-mail:

Le filtre FILTER_SANITIZE_EMAIL supprime les caractères illégaux des adresses e-mail. Par exemple:

$email = "test\"';DROP TABLE users;--@example.com";
$sanitizedEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
echo $sanitizedEmail; // Outputs: test@example.com (malicious script removed)
Copier après la connexion

Saisition URL:

De même, FILTER_SANITIZE_URL nettoie les URL des caractères nuisibles:

$url = "http://example.com/?param=<🎜>";
$sanitizedUrl = filter_var($url, FILTER_SANITIZE_URL);
echo $sanitizedUrl; // Outputs: http://example.com/?param= (script removed)
Copier après la connexion

valider les données avec filter_var

Validation de l'adresse IP:

$ip = "127.0.0.1";
if (filter_var($ip, FILTER_VALIDATE_IP)) {
  // Valid IP address
} else {
  // Invalid IP address
}
Copier après la connexion

Validation entière:

$foo = "123";
if (filter_var($foo, FILTER_VALIDATE_INT)) {
  // Valid integer
} else {
  // Invalid integer
}
Copier après la connexion

Application pratique: un formulaire de soumission par e-mail

Créons un formulaire de soumission de messagerie simple pour illustrer la désinfection et la validation des données. Le formulaire s'accumule: nom, e-mail, page d'accueil et message. Seules les données valides déclenchent la soumission des e-mails.

Étape 1: Création du formulaire (form.html):

<form method="post" action="form-email.php">
  Name: <input type="text" name="name"><br><br>
  Email Address: <input type="email" name="email"><br><br>
  Home Page: <input type="url" name="homepage"><br><br>
  Message: <textarea name="message"></textarea><br><br>
  <input type="submit" name="Submit" value="Send">
</form>
Copier après la connexion

Étape 2: Gestion de la soumission du formulaire (form-email.php):

<?php
$errors = "";
if (isset($_POST['Submit'])) {
    // ... (Validation and sanitization logic as shown in original example) ...
    if (empty($errors)) {
        // Send email using mail() function with sanitized data
        echo "Thank you for your message!";
    } else {
        echo "Errors: <br>" . $errors;
    }
}
?>
Copier après la connexion

(Remarque: La logique complète de validation et de désinfection de l'exemple d'origine doit être insérée dans le bloc if (isset($_POST['Submit'])) dans form-email.php.)

Conclusion

Ce tutoriel fournit une base pour l'utilisation des capacités de filtrage de données de PHP. Bien qu'il ne soit pas exhaustif, il présente l'efficacité de filter_var pour une gestion des données sécurisée et fiable. Reportez-vous à la section de filtrage des données du manuel PHP pour des techniques plus avancées. L'image a été générée à l'aide de Dall-E 2.

d'Openai

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 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