Je dois ajouter une instruction à mon programme Java pour mettre à jour la table de la base de données :
String insert = "INSERT INTO customer(name,address,email) VALUES('" + name + "','" + addre + "','" + email + "');";
J'ai entendu dire que cela pouvait être exploité via une injection SQL, par exemple :
DROP TABLE customer;
Mon programme a une interface graphique Java et toutes les valeurs de nom, d'adresse et d'e-mail sont ajoutées de Jtextfields
检索。我想知道黑如何将以下代码(DROP TABLE customer;
) à mon instruction d'insertion et comment puis-je empêcher cela.
Par exemple :
insérera cette valeur dans insert :
Utilisez des instructions préparées et des paramètres SQL (exemple "voler" de Matt Fellows) :
Analysez également les valeurs de ces variables et assurez-vous qu'elles ne contiennent aucun caractère non autorisé (tel que ";" dans le nom).
Vous devez utiliser PreparedStatement. Par exemple
Cela empêchera les attaques par injection.
La façon dont un pirate informatique l'insère est si la chaîne que vous insérez provient d'une entrée quelque part - comme un champ de saisie sur une page Web ou un champ de saisie sur un formulaire dans une application ou similaire.