sql >> Base de Datos >  >> RDS >> Mysql

Inyección SQL en Java y MySQL cuando se usan múltiples consultas

Por supuesto, si cambia la combinación de base de datos/controlador de su implementación actual a algo que admita múltiples solicitudes, entonces activará un agujero de seguridad inactivo que (sin duda) la gente habrá olvidado.

Ignorando los escenarios nefastos y maliciosos, lo anterior le causará problemas al insertar datos regulares, incluidos los caracteres de comillas, etc., es decir, lo anterior simplemente no funcionará. para conjuntos particulares de datos (a menos que se limpien/se eliminen, etc.). Lo corregiría simplemente por motivos de funcionalidad.

Debería echar un vistazo a PreparedStatement y los métodos de inserción de datos para esto (setString() ) etc.

por ejemplo:

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

El método setString() admitirá cualquier cadena sin problemas de escape/inyección.