tuto - Attraper l'injection SQL et d'autres requêtes Web malveillantes




requete préparée injection sql (6)

Maintenant que j'y pense, un filtre bayésien similaire à ceux utilisés pour bloquer le spam pourrait aussi fonctionner correctement. Si vous avez réuni un ensemble de texte normal pour chaque champ et un ensemble d'injections sql, vous pourrez peut-être l'entraîner pour signaler les attaques par injection.

Je suis à la recherche d'un outil capable de détecter les requêtes malveillantes (telles que les requêtes ou posts d'injection SQL) et bannira immédiatement l'adresse IP du demandeur / ajouter à une liste noire. Je suis conscient que dans un monde idéal, notre code devrait être capable de traiter de telles demandes et de les traiter en conséquence, mais il y a beaucoup de valeur dans un tel outil, même lorsque le site est à l'abri de ce type d'attaques. économie de bande passante, prévention de la charge d'analyse, etc.

Idéalement, je suis à la recherche d'une solution multiplateforme ( LAMP/.NET ) qui se situe à un niveau plus élevé que la pile technologique; peut-être au niveau du serveur Web ou du matériel. Je ne suis pas sûr si cela existe, cependant.

De toute façon, j'aimerais entendre les commentaires de la communauté afin que je puisse voir quelles sont mes options en matière de mise en œuvre et d'approche.


Une méthode qui pourrait fonctionner dans certains cas serait de prendre la chaîne sql qui s'exécuterait si vous utilisiez naïvement les données du formulaire et le passiez à un code qui compte le nombre d'instructions qui seraient réellement exécutées. Si elle est supérieure au nombre attendu, il y a une chance décente qu'une tentative d'injection ait été tentée, en particulier pour les champs qui sont peu susceptibles d'inclure des caractères de contrôle tels que le nom d'utilisateur.

Quelque chose comme une zone de texte normale serait un peu plus difficile, car cette méthode serait beaucoup plus susceptible de renvoyer des faux positifs, mais ce serait un début, au moins.


Oracle a un didacticiel en ligne sur l'injection SQL . Même si vous voulez une solution prête à l'emploi, cela peut vous donner quelques indications sur la façon de mieux l'utiliser pour vous défendre.


Un de mes sites a été récemment piraté via SQL Injection. Il a ajouté un lien vers un virus pour chaque champ de texte dans la base de données! Le correctif consistait à ajouter du code à la recherche de mots-clés SQL. Heureusement, j'ai développé dans ColdFiusion, donc le code se trouve dans mon fichier Application.cfm qui est exécuté au début de chaque page Web et il regarde toutes les variables d'URL. Wikipedia a quelques bons liens pour aider aussi.


Intéressant comment ceci est mis en application des années plus tard par google et les enlevant l'URL tous ensemble afin d'empêcher des attaques de XSS et d'autres activités malveillantes


Le problème avec un outil générique est qu'il est très difficile de trouver un ensemble de règles qui ne correspondent qu'à une véritable attaque.

Les mots-clés SQL sont tous des mots anglais, et n'oubliez pas que la chaîne

 DROP TABLE users;

est parfaitement valide dans un champ de formulaire qui, par exemple, contient une réponse à une question de programmation.

La seule option sensée consiste à nettoyer l'entrée avant de la transmettre à votre base de données, mais de la transmettre quand même. Sinon, beaucoup d'utilisateurs parfaitement normaux et non malveillants vont être bannis de votre site.





sql-injection