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.
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:
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'âge est le nombre,Continuer à traiter<br>
} else {<br>
// L'âge est vide ou formaté,Erreur rapide<br>
}
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:
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
}
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.
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.