2 Stimmen

Lib zum Schutz vor SQL/Javascript-Injektion für Java/Jsp

Kennen jemand eine gute Lib, wo ich die Zeichenfolgen ausführen können, bevor Sie eingefügt werden, die aus sql/Javascript-Code entfernen können? Um in JSP-Seiten ausgeführt werden.

Idealerweise wäre die Lib:

  • Kostenlos
  • Leichtgewicht
  • Einfach zu bedienen

Vielen Dank im Voraus an die SO-Community, die Ihnen gerne antworten wird :)

5voto

krosenvold Punkte 73093

Apache Commons lang StringEscapeUtils bringt Sie ein Stück des Weges. Es escaped, nicht strip.

http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html

Bearbeiten: Escaping kann Sie vor Injektionsangriffen schützen, da es sicherstellt, dass die vom Benutzer eingegebenen Daten nicht als Code ausgeführt werden, sondern dem Benutzer immer als Daten präsentiert werden.

4voto

Joel Coehoorn Punkte 377088

Sie müssen sich auf den Mechanismus Ihrer Datenbank-Api zur Verwendung parametrisierter Abfragen verlassen. Wenn Sie erste einen Sql-String dynamisch aufzubauen und entonces den vollständigen Abfrage-String bereinigen wollen, machen Sie es falsch. Das führt nur zu Problemen.


Edit: Nachdem ich Ihre Frage noch einmal gelesen habe, habe ich Ihre Frage wohl falsch verstanden. Ich stehe durch meine ursprünglichen Kommentare als genau für die Sql-Injektion Teil Ihrer Frage. Für das, Sie wollen definitiv echte Abfrageparameter.

Wie für das Herausfiltern von Javascript, ich glaube nicht, dass es eine echte Standard Weg, es zu tun, noch nicht. Ich weiß, dass Jeff den Code, den sie verwenden, hier bei SO gepostet hat, aber ich habe den Link nicht zur Hand. Wenn ich ihn finden kann, werde ich ihn posten.

2voto

Flory Punkte 2811

Werfen Sie einen Blick auf AntiSamy auf OWASP. Ich denke, das könnte das sein, wonach Sie suchen. Da ich derzeit nicht in Java arbeite, kann ich Ihnen nicht sagen, wie es funktioniert.

1voto

Vineet Reynolds Punkte 74302

Ich formuliere nur die Vorschläge, die andere hier gemacht haben, neu:

Der Auftraggeber möchte SQL- und JavaScript-Injektionsangriffe verhindern.

SQL-Injection-Angriffe können verhindert werden, indem sichergestellt wird, dass parametrisierte Abfragen/Bindungsvariablen verwendet werden, um Benutzereingaben für die Datenbank bereitzustellen. In der Java-Welt ist die Verwendung von PMD (und ein PMD-Regel ) und Findbugs (die Regeln sind standardmäßig in Findbugs integriert) hilft Ihnen bei der Ermittlung von Stellen in Ihrer Codebasis, die für SQL-Injection-Angriffe anfällig sind. OWASP hat einen guten Artikel über Verhinderung von SQL-Injection in Java .

Was die Skriptinjektion betrifft, so besteht die sicherste Methode, die Ausführung von Skripten durch Angreifer zu verhindern, darin, sicherzustellen, dass Benutzereingaben, wenn sie als Ausgabe verwendet werden, in einem kodierten Format angezeigt werden - bei Webanwendungen wäre dies die HTML-Kodierung. Diese OWASP-Seite zeigt Ihnen, wie Sie HTML-Kodierung in Java durchführen können.

0voto

fmsf Punkte 35002

Sie sagen also, dass ich für jeden möglichen Eintrag, der der Zeichenfolge hinzugefügt wird, zuerst die "bösartigen" Daten entfernen muss. Ja, das macht Sinn, da ich nicht in der Lage wäre zu sagen, was als Eingabe hinzugefügt wurde und was Teil der Abfrage selbst ist.

Ok ty ich schätze, ich muss wieder anfangen, etwas Code zu ändern :) noch die Frage für die api steht immer noch :)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X