Maison  >  Article  >  base de données  >  Comment transmettre en toute sécurité des paramètres à une instruction préparée JDBC ?

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 00:31:10530parcourir

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) {
            // ...
        }
    }

    // ...
}

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

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!

Déclaration:
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