Übergabe von Parametern an ein JDBC PreparedStatement
Beim Versuch, Benutzeranmeldeinformationen durch das Abrufen bestimmter Zeilen aus einer Datenbank zu validieren, ist ein Problem mit Ihrem aufgetreten Java-Code. Ihr Ziel besteht darin, eine Zeile basierend auf einem Parameter auszuwählen, der an den Konstruktor der Validation-Klasse übergeben wird. Ihr aktueller Ansatz ist jedoch erfolglos.
Das Problem liegt in der Art und Weise, wie Sie den Parameter userID in der SQL-Abfrage festlegen. Das direkte Einfügen des Parameterwerts in die Abfragezeichenfolge macht die Anweisung anfällig für SQL-Injection-Angriffe. Darüber hinaus kann es zu einer falschen Formatierung kommen.
Um dieses Problem zu beheben, sollten Sie die setString()-Methode der PreparedStatement-Klasse verwenden. Diese Technik stellt nicht nur sicher, dass die Anweisung richtig formatiert ist, sondern schützt sie auch vor SQL-Injection.
Der richtige Code sollte so aussehen:
statement = con.prepareStatement("SELECT * from employee WHERE userID = ?"); statement.setString(1, userID);
Im Wesentlichen sollten Sie die Benutzer-ID parametrisieren Wert und legen Sie ihn mit der Methode setString() fest. Diese Vorgehensweise erhöht die Sicherheit und Zuverlässigkeit Ihrer Datenbankinteraktionen.
Eine umfassende Anleitung zur effektiven Verwendung von PreparedStatements in Java finden Sie in den Java-Tutorials.
Das obige ist der detaillierte Inhalt vonWie kann ich Parameter zur Benutzerauthentifizierung sicher an ein JDBC PreparedStatement übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!