Como evitar SQL-Injection no Hibernate

4 respostas
F

Pessoal,

estou utilizando o hibernate em um projeto e percebi algumas tentativas de sql-injection na minha aplicação, estou utilizando a api query para fzer o select e queria saber como faço para evitar o sql-injection…

4 Respostas

F

Se não me engano, o Hibernate usa PreparedStatement pra montar as querys.
E o PreparedStatement evita o SQL injection.

F

finotti:
Se não me engano, o Hibernate usa PreparedStatement pra montar as querys.
E o PreparedStatement evita o SQL injection.

Eu até pensei em usar o PreparedStatement, mais ouvi dizer q só funciona com o JDBC e para o hibernate teria q ser algo do tipo…

query.setParam(valor);

queria só saber se realmente é isso!!!

S

é só voce não concatenar strings manualmente na sua query. se usar Criteria, faça algo assim:

String nome = // input do usuário

session.createCriteria(Produto.class)
           .add(Restrictions.eq("nome", nome))
           ....

ou se usar HQL use named parameters:

String nome = // input do usuário

session.createQuery("from Produto where nome = :nome")
           .setParameter("nome", nome)
           ....

[]'s

F

Isso mesmo q eu precisava!!!

Valeu! :smiley:

Criado 22 de setembro de 2009
Ultima resposta 22 de set. de 2009
Respostas 4
Participantes 3