Frage

Gibt es eine eingebaute Möglichkeit, Benutzereingaben in Java unter Verwendung des JDBC zu entkommen? Etwas ähnlich wie die PHP-Version mysql_real_escape() Funktion. Was ist der beste Weg, Eingabe zu bestätigen?

War es hilfreich?

Lösung

Wenn Sie meinen, wie Sie sicher, dass Benutzereingaben vornehmen können nicht in SQL-Injection-Angriffen verwendet werden, die Möglichkeit, diese (und die Art und Weise alle SQL sollten in JDBC geschrieben werden) zu tun Prepared Statements verwendet. JDBC automatisch alle notwendigen Entkommen behandeln.

http://java.sun.com/docs /books/tutorial/jdbc/basics/prepared.html

Andere Tipps

Nur auf den Vorschlag von @skaffman hinzufügen, PreparedStatements für die meisten Anwendungen das Problem lösen. Es gibt jedoch einige Anwendungen, bei denen (Teile von) SQL-Anweisungen (im Gegensatz zu nur Parameterwert) von Benutzereingaben berücksichtigt werden (beispielsweise ein URL-Parameter die ORDER BY-Klausel enthalten). Sie müssen nur sicherstellen Sie diejenigen sanieren genauso gut oder noch besser, vermeiden solche Konstruktionen, wenn möglich.

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