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…
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…
Se não me engano, o Hibernate usa PreparedStatement pra montar as querys.
E o PreparedStatement evita o SQL injection.
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ó 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
Isso mesmo q eu precisava!!!
Valeu! 