sql >> Databáze >  >> RDS >> Mysql

SQL Injection v Javě a MySQL při použití více dotazů

Samozřejmě, pokud změníte svou kombinaci databáze/ovladače z vaší současné implementace na něco, co podporuje více požadavků, aktivujete spící bezpečnostní díru, na kterou (nepochybně) lidé zapomenou!

Ignorování hanebných a škodlivých scénářů vám výše uvedené způsobí problémy s vkládáním běžných dat, včetně znaků uvozovek atd., tj. výše uvedené jednoduše nebude fungovat pro konkrétní soubory dat (pokud nejsou vyčištěny/uniknuty atd.). Opravil bych to jednoduše pro účely funkčnosti.

Měli byste se podívat na PreparedStatement a způsoby vkládání dat pro tento účel (setString() ) atd.

např.:

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

Metoda setString() bude podporovat jakýkoli řetězec bez problémů s escapováním/vkládáním.



  1. Název parametru dotazu SQL musí být definován

  2. V jakém pořadí jsou zpracována omezení ON DELETE CASCADE?

  3. Heroku and Rails:Gem Load Error s Postgres, nicméně je specifikována v GEMFILE

  4. Jak vytvořit index v MySQL