Der beste Weg, eine Benutzereingabe JDBC zu validieren?
-
02-07-2019 - |
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?
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.