Maison >base de données >tutoriel mysql >Comment transmettre en toute sécurité des paramètres à une instruction préparée JDBC ?
Passer des paramètres à une instruction préparée JDBC
Dans JDBC, les instructions préparées sont utilisées pour exécuter des instructions SQL de manière efficace et sécurisée en compilant l'instruction une fois et l'exécuter plusieurs fois avec des paramètres différents. Lors de la transmission de paramètres à une instruction préparée, il est crucial de s'assurer qu'ils sont correctement définis pour éviter les attaques par injection SQL et les erreurs de formatage des instructions.
Explication du problème
Le code fourni tente de sélectionner une ligne dans une table de base de données en fonction du paramètre userID transmis au constructeur de la classe Validation. Cependant, l'instruction manque de paramétrage, ce qui entraîne une exécution incorrecte et des vulnérabilités potentielles d'injection SQL.
Solution
Pour transmettre correctement le paramètre userID, utilisez la méthode setString() pour définir la valeur du paramètre de requête. Cela garantit que l'instruction est correctement formatée et protège contre les attaques par injection SQL.
statement = con.prepareStatement("SELECT * FROM employee WHERE userID = ?"); statement.setString(1, userID);
En suivant cette approche, le code fourni sélectionnera correctement la ligne de la table de base de données en fonction du paramètre userID spécifié.
Bonnes pratiques
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!