Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL-Injection in Java und MySQL bei Verwendung mehrerer Abfragen

Wenn Sie natürlich Ihre Datenbank/Treiber-Kombination von Ihrer aktuellen Implementierung auf etwas ändern, das mehrere Anfragen unterstützt, dann aktivieren Sie eine schlafende Sicherheitslücke, die (zweifellos) die Leute vergessen haben werden!

Abgesehen von den schändlichen, böswilligen Szenarien wird das Obige Ihnen Probleme beim Einfügen regulärer Daten bereiten, einschließlich Anführungszeichen usw. Das Obige wird einfach nicht funktionieren für bestimmte Datensätze (sofern nicht bereinigt/versiegelt etc.). Ich würde es einfach aus Gründen der Funktionalität korrigieren.

Sie sollten sich PreparedStatement.html" ansehen. a> , und die Dateneinfügungsmethoden dafür (setString() ) usw.

zB:

   PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                     SET SALARY = ? WHERE ID = ?");
   pstmt.setBigDecimal(1, 153833.00)
   pstmt.setString(2, "Insert what you like here")

Die Methode setString() unterstützt jeden String ohne Escape-/Injection-Probleme.