Maison > base de données > tutoriel mysql > le corps du texte

Comment transmettre en toute sécurité des paramètres à une instruction préparée JDBC ?

Patricia Arquette
Libérer: 2024-11-25 00:31:10
original
529 Les gens l'ont consulté

How to Safely Pass Parameters to a JDBC PreparedStatement?

Passer des paramètres à un PreparedStatement JDBC

La création d'une classe de validation pour un programme Java implique souvent d'interroger une base de données. Le code suivant tente de sélectionner une ligne spécifique d'une table à l'aide d'un PreparedStatement avec un paramètre :

public class Validation {

    // ...

    public Validation(String userID) {
        try {
            // ...
            statement = con.prepareStatement(
                    "SELECT * from employee WHERE  userID = " + "''" + userID);
            // ...
        } catch (Exception ex) {
            // ...
        }
    }

    // ...
}
Copier après la connexion

Cependant, ce code peut ne pas fonctionner car l'instruction SQL n'est pas formatée correctement.

Solution :

Pour passer correctement un paramètre à un PreparedStatement, utilisez setString() méthode :

statement = con.prepareStatement("SELECT * from employee WHERE  userID = ?");
statement.setString(1, userID);
Copier après la connexion

Cette méthode définit la valeur du premier paramètre (?) sur l'ID utilisateur spécifié. Il garantit que l'instruction est correctement formatée et empêche l'injection SQL, une vulnérabilité de sécurité qui se produit lorsque du code SQL malveillant est injecté dans une requête.

Pour plus d'informations sur l'utilisation de PreparedStatements, reportez-vous aux didacticiels Java.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal