Sql injection Java/PHP

4 respostas
dtxk

Olá pessoal, gostaria de tirar algumas duvidas… o “Sql injection” só funciona para quem não usa o PreparedStatment… e quem não usa, por exemplo quem usa Hibernate, a melhor forma seria utilizando Criteria? No PHP tenho uma proteção extra contra isso automatico…

Fico no aguardo…

Obrigado

4 Respostas

dtxk

e o HQL é seguro contra Sql Injection? nos meus testes não passou…

romarcio

Com criteria com certeza não terás problema.
Se usar HQL, use setParameter(), que evita com certeza.

String nome = // input do usuário

session.createQuery("from Produto where nome = :nome")
           .setParameter("nome", nome)
           ....
dtxk
romarcio:
Com criteria com certeza não terás problema. Se usar HQL, use setParameter(), que evita com certeza.
String nome = // input do usuário

session.createQuery("from Produto where nome = :nome")
           .setParameter("nome", nome)
           ....
Olá romarcio, funcionou bem... obrigado.
drsmachado

SQL Injection, invariavelmente, será permitido se o programa omitir requisitos mínimos de segurança.
Há várias formas de validar.
No PHP, como você citou, há os métodos que fazem a análise da query.
Mesmo usando Statement é possível analisar a query e eliminar as ‘coisas’ erradas.
Aliás, assim como ASP permite cross scripting e injeção de código, caso não haja a correta tratativa, java, PHP, Ruby ou qualquer linguagem será vulnerável à proporção do descaso com a segurança.

Criado 10 de julho de 2011
Ultima resposta 12 de jul. de 2011
Respostas 4
Participantes 3