Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL Injection em Java e MySQL ao usar várias consultas


Claro, se você alterar sua combinação de banco de dados/driver de sua implementação atual para algo que suporte várias solicitações, você ativará uma falha de segurança inativa que (sem dúvida) as pessoas terão esquecido!

Ignorando os cenários nefastos e maliciosos, o acima causará problemas ao inserir dados regulares, incluindo caracteres de aspas, etc., ou seja, o acima simplesmente não funcionará para conjuntos específicos de dados (a menos que sejam limpos/escapados etc.). Eu corrigiria isso simplesmente para fins de funcionalidade.

Você deve dar uma olhada em PreparedStatement , e os métodos de inserção de dados para isso (setString() ) etc

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

O método setString() suportará qualquer string sem problemas de escape/injeção.