Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL Injection w Javie i MySQL przy użyciu wielu zapytań

Oczywiście, jeśli zmienisz kombinację bazy danych/sterowników z obecnej implementacji na coś obsługującego wiele żądań, aktywujesz uśpioną lukę w zabezpieczeniach, o której (bez wątpienia) ludzie zapomnieli!

Ignorując nikczemne, złośliwe scenariusze, powyższe spowoduje problemy z wstawianiem zwykłych danych, w tym znaków cytatu itp., tj. powyższe po prostu nie zadziała dla poszczególnych zestawów danych (chyba, że ​​zostały oczyszczone/usunięte itp.). Poprawiłbym to po prostu ze względu na funkcjonalność.

Powinieneś zajrzeć do PreparedStatement oraz metody wstawiania danych w tym celu (setString() ) itp.

np.:

   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() będzie obsługiwać dowolny ciąg bez problemów ze znakami ucieczki/wstrzykiwania.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. format daty w node.JS

  2. Jak używać XPATH w MySQL select?

  3. Błąd w MySQL podczas ustawiania domyślnej wartości DATE lub DATETIME

  4. Mysql:Konwertuj DB z czasu lokalnego na UTC

  5. Uaktualnij MySQL do MariaDB 10 (Część 1 – Zainstaluj MariaDB 5.5)