Attraper Injection SQL et d'autres requêtes Web malveillants

voix
17

Je suis à la recherche d'un outil qui permet de détecter les requêtes malveillantes (telles que l'injection SQL évidente obtient ou messages) et immédiatement interdire l'adresse IP du demandeur / ajouter à une liste noire. Je suis conscient que dans un monde idéal notre code devrait être en mesure de traiter ces demandes et 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 genre d'attaques, car il peut conduire à économies de bande passante, ce qui empêche le ballonnement de l'analyse, etc.

Idéalement, je cherche une section plate - forme ( LAMP/.NETsolution) qui se trouve à un niveau plus élevé que la pile de la technologie; peut - être au-serveur Web ou au niveau du matériel. Je ne sais pas si cela existe, cependant.

De toute façon, j'aimerais entendre les commentaires de la communauté afin que je puisse voir ce que mes options pourraient être en ce qui concerne la mise en œuvre et de l'approche.

Créé 04/08/2008 à 15:40
source utilisateur
Dans d'autres langues...                            


8 réponses

voix
10

Votre recherche presque la mauvaise façon, aucun outil de 3party qui n'a pas connaissance de vos méthodes d'application / dénomination / données / domaine va va être en mesure de vous protéger parfaitement.

Quelque chose comme la prévention de l'injection SQL est quelque chose qui doit être dans le code, et le meilleur écrit par les gens qui ont écrit le SQL, parce qu'ils sont ceux qui savent ce qui devrait / ne devrait pas être dans ces domaines (à moins que votre projet a très bonne documentation )

Votre droit, ce qui a été fait auparavant. Vous n'avez pas tout à fait de réinventer la roue, mais vous devez se tailler une nouvelle raison d'une différence dans les diamètres des essieux de tout le monde.

Ce n'est pas une goutte-et problème courir, vous avez vraiment connaître exactement ce que l'injection SQL est avant de pouvoir l'empêcher. Il est un problème sournoise, donc il faut des protections aussi sournoise.

Ces 2 liens me ont appris beaucoup plus que les bases sur le sujet pour commencer, et m'a aidé à mieux formuler mes de recherches futures sur des questions précises qui sont restées sans réponse.

Et tandis que celui-ci isnt tout à fait un viseur 100%, il « vous montrer la lumière » sur problème existant dans votre code existant, mais comme avec webstandards, ne cessez pas de codage une fois que vous passez ce test.

Créé 04/08/2008 à 16:43
source utilisateur

voix
5

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 contre une attaque réelle.

mots-clés SQL sont tous les mots anglais, et ne pas oublier 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 raisonnable est d'aseptiser l'entrée avant qu'il ne jamais passer à votre base de données, mais transmettre néanmoins. Sinon, beaucoup de tout à fait normal, les utilisateurs non malveillants vont être banni de votre site.

Créé 04/08/2008 à 16:11
source utilisateur

voix
3

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

Créé 05/08/2008 à 18:38
source utilisateur

voix
3

Une petite chose à garder à l'esprit: Dans certains pays (par exemple la plupart de l'Europe), les gens ne sont pas des adresses IP statiques, donc des listes noires ne devraient pas être pour toujours.

Créé 04/08/2008 à 16:22
source utilisateur

voix
3

Une méthode qui pourrait fonctionner pour certains cas, serait de prendre la chaîne SQL qui fonctionnerait si vous utilisez naïvement les données de formulaire et le transmettre à un code qui compte le nombre de déclarations qui seraient effectivement exécutées. S'il est supérieur au nombre prévu, alors il y a une bonne chance que l'injection a été tentée, en particulier pour les champs qui ne sont pas 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 susceptibles de retourner les faux positifs, mais ce serait un début, au moins.

Créé 04/08/2008 à 16:20
source utilisateur

voix
0

Intéressant de voir comment cela est mis en œuvre ans plus tard par Google et les supprimer l'URL tous ensemble afin d'éviter les attaques XSS et autres acitivites malveillants

Créé 24/07/2014 à 06:18
source utilisateur

voix
0

L'un de mes sites a récemment été piraté par injection SQL. Il a ajouté un lien vers un virus pour tous les champs de texte dans la db! Le correctif a été d'ajouter un code à la recherche des mots-clés SQL. Heureusement, je l'ai développé dans ColdFiusion, de sorte que le code se trouve dans mon dossier Application.cfm qui est exécuté au début de chaque page Web et il examine toutes les variables d'URL. Wikipedia a quelques bons liens pour aider aussi.

Créé 16/09/2008 à 15:04
source utilisateur

voix
0

Maintenant que je pense, un filtre bayésien similaire à ceux utilisés pour bloquer le spam pourrait fonctionner décemment aussi. Si vous avez ensemble un ensemble de texte normal pour chaque champ et un ensemble d'injections sql, vous pourriez être en mesure de former à des attaques d'injection de drapeau.

Créé 04/08/2008 à 16:26
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more