Maison  >  Article  >  Java  >  Comment empêcher l’injection SQL en Java ?

Comment empêcher l’injection SQL en Java ?

藏色散人
藏色散人original
2019-04-30 09:37:3612285parcourir

L'injection SQL est l'une des méthodes d'attaque réseau les plus courantes. Elle n'utilise pas le BUG du système d'exploitation pour réaliser l'attaque, mais cible la négligence du programmeur lors de la programmation, elle peut se connecter sans compte ou. même falsifier la base de données.

Comment empêcher l’injection SQL en Java ?

Méthode d'arrière-plan Java pour empêcher l'injection SQL :

1. Utilisez un ensemble d'instructions précompilé, qui a la capacité intégrée de le faire. gérer l'injection SQL, utilisez simplement sa méthode setString pour transmettre la valeur :

String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();

2. Utilisez des expressions régulières pour remplacer les instructions contenant des guillemets simples ('), des points-virgules (;) et des symboles de commentaire (--) Supprimer pour empêcher Injection SQL

public static String SQL(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
}
userName=SQL(userName);
password=SQL(password);
String sql="select * from users where username='"+userName+"' and password='"+password+"' "
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);

Recommandations associées : "Tutoriel 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