sql >> Database >  >> RDS >> Mysql

SQL-injectie in Java en MySQL bij gebruik van meerdere query's

Als u uw database/stuurprogramma-combinatie wijzigt van uw huidige implementatie naar iets dat meerdere verzoeken ondersteunt, activeert u natuurlijk een slapend beveiligingslek dat mensen (ongetwijfeld) zijn vergeten!

Als u de snode, kwaadaardige scenario's negeert, zal het bovenstaande u problemen geven met het invoegen van reguliere gegevens, inclusief aanhalingstekens enz. d.w.z. het bovenstaande werkt gewoon niet voor bepaalde gegevenssets (tenzij deze zijn opgeschoond/verdwenen enz.). Ik zou het gewoon corrigeren voor functionele doeleinden.

Kijk eens naar PreparedStatement , en de methoden voor het invoegen van gegevens hiervoor (setString() ) enz.

bijv.:

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

De methode setString() ondersteunt elke tekenreeks zonder escape-/injectieproblemen.



  1. Stuur ArrayList van Android naar php MySQL

  2. DISTINCT voor slechts één kolom

  3. Kan 'false' overeenkomen met een string in mysql?

  4. Voeg meerdere rijen in SQLite-fout in (foutcode =1)