Sobes.tech
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.