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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top