Lors du développement d'applications Web à l'aide de PHP, les formulaires sont un moyen important de collecter les entrées utilisateur. Afin d'empêcher les données malveillantes d'affecter la stabilité et la sécurité du système, vous devez d'abord confirmer que la fonction filtrante de PHP est activée. Dans le fichier php.ini, recherchez la configuration d'extension pertinente pour vous assurer que la fonction de filtre est activée et redémarrez le serveur après l'enregistrement.
Lors de la construction d'un formulaire, les champs et attributs d'entrée doivent être définis raisonnablement. L'exemple suivant est un formulaire d'inscription avec un nom d'utilisateur, un mot de passe et un e-mail:
<form action="register.php" method="post"> <label for="username">nom d'utilisateur:</label> <input type="text" name="username" id="username"> <label for="password">mot de passe:</label> <input type="password" name="password" id="password"> <label for="email">Mail:</label> <input type="email" name="email" id="email"> <input type="submit" value="registre"> </form>
Après avoir soumis le formulaire, utilisez la fonction de filtre intégrée PHP pour effectuer un nettoyage de base de l'entrée utilisateur:
$ username = filter_input (input_post, 'username', filter_sanitize_string); $ mot de passe = filter_input (input_post, 'mot de passe', filter_sanitize_string); $ email = filter_input (input_post, 'e-mail', filter_sanitize_email);
Pour améliorer la sécurité, le format sur le terrain peut être vérifié davantage en combinaison avec des expressions régulières, telles que le nom d'utilisateur n'autorise que 3 à 20 lettres, chiffres et soulignements:
$ userNameRegex = '/ ^ [a-za-z0-9 _] {3,20} $ /'; if (! preg_match ($ userNameregex, $ username)) { Echo "Le nom d'utilisateur doit être une combinaison de lettres, de chiffres ou de soulignements de 3 à 20 caractères"; sortie(); }
Il en va de même pour d'autres champs, vous pouvez personnaliser les règles de vérification en fonction de vos besoins.
Avant de stocker des données dans la base de données, assurez-vous d'échapper au contenu d'entrée pour éviter les attaques d'injection SQL. Par exemple:
$ username = mysqli_real_escape_string ($ dbConnection, $ username); $ mot de passe = mysqli_real_escape_string ($ dbconnection, $ mot de passe); $ email = mysqli_real_escape_string ($ dbconnection, $ e-mail);
Pendant la vérification du formulaire, vous pouvez rencontrer des problèmes tels que le nom d'utilisateur occupé et la force de mot de passe insuffisante. En maintenant un tableau d'informations d'erreur, toutes les exceptions de vérification sont collectées, ce qui est pratique pour l'affichage unifié:
$ errors = array (); // Vérifiez si le nom d'utilisateur existe déjà if (usernameExists ($ username)) { $ erreurs ['nom d'utilisateur'] = "Le nom d'utilisateur a été occupé"; } // Vérifiez la force du mot de passe if (isweakpassword ($ mot de passe)) { $ errors ['mot de passe'] = "Le mot de passe est trop faible"; } // Message d'erreur de sortie if (! Vide ($ errors)) { foreach ($ erreurs comme $ error) { ECHO $ ERROR. "<br> " } }
Ici, UserNameExists () et IsweakPassword () sont des fonctions personnalisées qui peuvent être implémentées en fonction de la logique professionnelle réelle.
En utilisant rationnellement les filtres PHP, les expressions régulières et les mécanismes de collecte d'erreurs, la sécurité de la vérification du formulaire peut être efficacement améliorée et les risques de sécurité potentiels peuvent être réduits. Dans le même temps, la combinaison des échappements de base de données et des instructions de prétraitement garantit que l'application est protégée contre les menaces d'attaque courantes. N'oubliez pas que bien que la vérification frontale soit pratique pour l'expérience utilisateur, la vérification back-end est la clé pour assurer la sécurité des données.
J'espère que ce contenu de l'article vous sera utile dans la compréhension et la mise en œuvre de la vérification du formulaire de sécurité PHP, contribuant à créer une application Web plus sûre et plus fiable.