Melhor maneira de validar a entrada do usuário JDBC?
-
02-07-2019 - |
Pergunta
Existe um built-in maneira de escapar a entrada do usuário em java usando o JDBC
? Algo semelhante à função php versão mysql_real_escape()
. Qual é a melhor maneira de entrada validar?
Solução
Se você quer dizer como você se certificar de entrada do usuário não pode ser usado em ataques de injeção SQL, a maneira de fazer isso (e a maneira como todos SQL deve ser escrito em JDBC) está usando instruções preparadas. JDBC irá lidar automaticamente qualquer escape necessário.
http://java.sun.com/docs /books/tutorial/jdbc/basics/prepared.html
Outras dicas
Só para acrescentar à sugestão por @skaffman, PreparedStatements resolver o problema para a maioria das aplicações. No entanto, há algumas aplicações em que (partes de) instruções SQL (em oposição aos valores de parâmetros apenas) são retiradas da entrada de utilizador (por exemplo, um parâmetro de URL contendo ORDER BY). Apenas certifique-se higienizar as também ou, ainda melhor, evitar tais projetos se possível.