Junior — Middle
Wie kann man Schwachstellen im Zusammenhang mit der SQL-Code-Einspritzung durch Parameter in JDBC verhindern?
sobes.tech KI
Antwort von AI
Um SQL-Injection durch Parameter in JDBC zu verhindern, werden folgende Methoden verwendet:
-
PreparedStatement — Verwendung von parametrisierten Abfragen, bei denen die Parameter separat übergeben werden und nicht direkt in die SQL-Zeichenkette eingefügt werden. Dies verhindert die Interpretation der Parameter als Code.
-
Validierung und Escaping der Eingabedaten — Überprüfung und Bereinigung der Daten vor der Verwendung in Abfragen.
-
Verwendung von ORM — z.B. Hibernate, die automatisch sichere Abfragen generieren.
Beispiel für die Verwendung von PreparedStatement:
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
Dieser Ansatz schließt die Möglichkeit aus, schädlichen SQL-Code durch Parameter einzuschleusen.