Mysql
 sql >> Base de données >  >> RDS >> Mysql

Injection SQL dans Java et MySQL lors de l'utilisation de plusieurs requêtes

Bien sûr, si vous changez votre combinaison base de données/pilote de votre implémentation actuelle en quelque chose qui prend en charge plusieurs requêtes, vous activerez une faille de sécurité dormante que les gens auront (sans aucun doute) oublié !

En ignorant les scénarios néfastes et malveillants, ce qui précède vous causera des problèmes lors de l'insertion de données régulières, y compris des guillemets, etc., c'est-à-dire que ce qui précède ne fonctionnera tout simplement pas. pour des ensembles de données particuliers (à moins qu'ils ne soient nettoyés/sauvés, etc.). Je le corrigerais simplement à des fins de fonctionnalité.

Vous devriez jeter un œil à PreparedStatement , et les méthodes d'insertion de données pour cela (setString() ) etc.

par exemple :

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setString(2, "Insert what you like here")

La méthode setString() prendra en charge n'importe quelle chaîne sans problèmes d'échappement/d'injection.