sql >> Databasteknik >  >> RDS >> Mysql

SQL-injektion i Java och MySQL vid användning av flera frågor

Naturligtvis, om du ändrar din databas/drivrutinkombination från din nuvarande implementering till något som stöder flera förfrågningar, kommer du att aktivera ett vilande säkerhetshål som (utan tvekan) folk kommer att ha glömt bort!

Om du ignorerar de illvilliga, skadliga scenarierna kommer ovanstående att orsaka problem med att infoga vanliga data, inklusive citattecken etc. det vill säga ovanstående kommer inte att fungera för särskilda uppsättningar data (såvida de inte rensas/flyktas etc.). Jag skulle korrigera det helt enkelt för funktionalitetsskäl.

Du bör ta en titt på PreparedStatement a> , och datainsättningsmetoderna för detta (setString() ) osv.

t.ex.:

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

Metoden setString() kommer att stödja vilken sträng som helst utan escape-/injektionsproblem.



  1. Hur man importerar XML-fil till MySQL-databastabell med XML_LOAD(); fungera

  2. Har du problem med MS Access Crashing? Prova dessa lösningar först

  3. MySQL INNER JOIN Alias

  4. Docker väntar på att postgresql ska köras