sql >> Database teknologi >  >> RDS >> Mysql

SQL Injection i Java og MySQL ved brug af flere forespørgsler

Selvfølgelig, hvis du ændrer din database/driver-kombination fra din nuværende implementering til noget, der understøtter flere anmodninger, så vil du aktivere et slumrende sikkerhedshul, som folk (uden tvivl) vil have glemt!

Hvis du ignorerer de uhyggelige, ondsindede scenarier, vil ovenstående give dig problemer med at indsætte almindelige data, inklusive citattegn osv. dvs. ovenstående virker simpelthen ikke for bestemte sæt data (medmindre de er renset/undgået osv.). Jeg ville rette det blot af funktionalitetsformål.

Du bør tage et kig på PreparedStatement a> , og dataindsættelsesmetoderne for dette (setString() ) osv.

f.eks.:

   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() vil understøtte enhver streng uden problemer med escape/injection.



  1. hvordan man søger SQL Server 2008 R2 lagrede procedurer for en streng?

  2. Indsamlingsmetode:FINDER Funktion i Oracle-databasen

  3. Rails ActiveRecord håndterer en id-kolonne, der ikke er den primære nøgle

  4. Returner en liste over fremmede nøgler i SQLite