Bonjour,
voilà j'ai une application WEB J2EE (struts/EJB/BD). Je sais que mon site est vulnérable à des "SQL Injection". J'aimerais savoir comment contrer tout cela.
Des conseils, des solutions SVP.
Merci
Bonjour,
voilà j'ai une application WEB J2EE (struts/EJB/BD). Je sais que mon site est vulnérable à des "SQL Injection". J'aimerais savoir comment contrer tout cela.
Des conseils, des solutions SVP.
Merci
est ce que le fait de filtrer la requete dans la méthode validate() du validatorform peut empécher l'injection sql?
par exemple blancer une erreur si la requete contient des mots telsque "select","drop","update"...
Merci pour la réponse
Bonjour.
Je crois que le forum Base de données en génral serait plus adapté à ta question.
Sinon, voici quelques techniques de base pour se protéger du SQL Injection :
- blacklisting : interdire que quelques mots clés de SQL soient présents dans un input utilisateur : or, select, delete, drop, etc.
- whitelisting : vérifier que l'entrée utilisateur respecte un format donnée (par expression régulière par exemple) : [0-9]+ pour un format numérique, etc. Le truc c'est de limiter les caractères accéptés au strict nécessaire : pas de ";" par exemple dans un login.
- effectuer un "escape" sur les entrées utilisateur : despecialiser les apostrophes et compagnie. PreparedStatement de JDBC effectue cela automatiquement, donc usez d'elle à volonté.
- Désactiver le multi-requêtage dans la BD.
- Utiliser impérativement des comptes BD sur mesure avec le strict minimum de droits pour toute requête où on injecte un contenu utilisateur.
Voilou. Ce ne sont que quelques techniques générales, mais une recherche approfondie sur le thème s'impose pour une application professionnelle.
Bonne chance.
Le sujet à la base était dans le forum mysql et il a été transféré ici.
En tous cas, merci pour les infos![]()
Hibernate travaillant en objet, il doit déjà contrôler cela lors de l'insertion d'un objet dans la base : à contrôler.
Mais je ne comprendrais pas beaucoup que l'on interdise des caractères comme ; ou " ou ' pour la simple raison qu'il y a un risque : en effet pourquoi une donnée ne pourrait pas contenir ces caractères ?![]()
Il faut donc trouver les mécanismes qui font le travail de contrôle à notre place (à chaque fois que cela est possible) mais en aucun cas restreindre le format des données (sauf cas de force majeure).![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager