Frage

Ich suche nach einem Tool, das böswillige Anfragen erkennen kann (z. B. offensichtliche SQL-Injection-Abrufe oder -Posts) und die IP-Adresse des Anforderers sofort sperrt bzw. einer schwarzen Liste hinzufügt.Ich bin mir bewusst, dass unser Code in einer idealen Welt in der Lage sein sollte, solche Anfragen zu verarbeiten und entsprechend zu behandeln, aber ein solches Tool bietet auch dann einen großen Wert, wenn die Website vor solchen Angriffen geschützt ist, zu denen es führen kann Einsparung von Bandbreite, Verhinderung einer Aufblähung von Analysen usw.

Idealerweise suche ich ein plattformübergreifendes (LAMP/.NET) Lösung, die auf einer höheren Ebene als der Technologie-Stack liegt;vielleicht auf Webserver- oder Hardwareebene.Ich bin mir allerdings nicht sicher, ob das existiert.

In jedem Fall würde ich gerne das Feedback der Community hören, damit ich sehen kann, welche Optionen ich hinsichtlich der Umsetzung und Vorgehensweise haben könnte.

Keine korrekte Lösung

Andere Tipps

Sie sehen es fast falsch: Kein Drittanbieter-Tool, das Ihre Anwendungsmethoden/Namen/Daten/Domäne nicht kennt, wird Sie perfekt schützen können.

So etwas wie die Verhinderung von SQL-Injection muss im Code enthalten sein und am besten von den Leuten geschrieben werden, die die SQL geschrieben haben, denn sie sind diejenigen, die wissen, was in diesen Feldern stehen sollte/sollte (es sei denn, Ihr Projekt verfügt über sehr gute Dokumente). )

Du hast Recht, das wurde alles schon einmal gemacht.Man muss das Rad nicht unbedingt neu erfinden, aber man muss ein neues schnitzen, da sich die Achsdurchmesser bei allen unterscheiden.

Hierbei handelt es sich nicht um ein Drop-In-and-Run-Problem. Sie müssen wirklich wissen, was genau SQL-Injection ist, bevor Sie es verhindern können.Da es sich um ein heimtückisches Problem handelt, sind ebenso heimtückische Schutzmaßnahmen erforderlich.

Diese beiden Links haben mir weit mehr als nur die Grundlagen des Themas beigebracht und mir dabei geholfen, meine zukünftigen Nachschläge zu bestimmten Fragen, die nicht beantwortet wurden, besser zu formulieren.

Auch wenn dies kein 100-prozentiger Finder ist, wird es Ihnen „das Licht auf bestehende Probleme in Ihrem bestehenden Code werfen“. Aber wie bei Webstandards sollten Sie nicht mit dem Codieren aufhören, wenn Sie diesen Test bestanden haben.

Das Problem bei einem generischen Tool besteht darin, dass es sehr schwierig ist, eine Reihe von Regeln zu entwickeln, die nur gegen einen echten Angriff geeignet sind.

SQL-Schlüsselwörter sind alle englischen Wörter, und vergessen Sie nicht die Zeichenfolge

 DROP TABLE users;

ist in einem Formularfeld, das beispielsweise eine Antwort auf eine Programmierfrage enthält, vollkommen gültig.

Die einzig sinnvolle Option besteht darin, die Eingabe zu bereinigen, bevor Sie sie jemals an Ihre Datenbank weitergeben, sie aber trotzdem weiterzugeben.Andernfalls werden viele ganz normale, nicht böswillige Benutzer von Ihrer Website ausgeschlossen.

Eine Methode, die in einigen Fällen funktionieren könnte, wäre, den SQL-String, der ausgeführt würde, wenn Sie die Formulardaten naiv verwenden würden, an einen Code zu übergeben, der die Anzahl der Anweisungen zählt, die tatsächlich ausgeführt würden.Wenn sie größer als die erwartete Zahl ist, besteht eine gute Chance, dass eine Injektion versucht wurde, insbesondere bei Feldern, die wahrscheinlich keine Steuerzeichen wie den Benutzernamen enthalten.

So etwas wie ein normales Textfeld wäre etwas schwieriger, da diese Methode viel wahrscheinlicher Fehlalarme zurückgeben würde, aber das wäre zumindest ein Anfang.

Eine Kleinigkeit, die Sie beachten sollten:In einigen Ländern (d. h.In den meisten Teilen Europas haben die Menschen keine statischen IP-Adressen, daher sollte die schwarze Liste nicht für immer bestehen bleiben.

Oracle hat eine Online-Tutorial zu SQL-Injection.Auch wenn Sie eine vorgefertigte Lösung wünschen, könnte Ihnen dies einige Hinweise geben, wie Sie diese besser zu Ihrer Verteidigung nutzen können.

Wenn ich jetzt darüber nachdenke, könnte ein Bayes'scher Filter, ähnlich denen, die zum Blockieren von Spam verwendet werden, ebenfalls gut funktionieren.Wenn Sie für jedes Feld einen Satz normalen Texts und einen Satz SQL-Injektionen zusammenstellen, können Sie ihn möglicherweise trainieren, um Injektionsangriffe zu kennzeichnen.

Eine meiner Websites wurde kürzlich durch SQL-Injection gehackt.Es wurde für jedes Textfeld in der Datenbank ein Link zu einem Virus hinzugefügt!Die Lösung bestand darin, Code hinzuzufügen, der nach SQL-Schlüsselwörtern sucht.Glücklicherweise habe ich in ColdFiusion entwickelt, sodass sich der Code in meiner Application.cfm-Datei befindet, die am Anfang jeder Webseite ausgeführt wird und alle URL-Variablen prüft.Wikipedia hat auch einige gute Links, die weiterhelfen.

Interessant, wie dies Jahre später von Google umgesetzt wird und die URL insgesamt entfernt wird, um XSS-Angriffe und andere böswillige Aktivitäten zu verhindern

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top