Weaknesses of type CWE-564
10 resultsInjeção SQL em Hibernate
Ocorre quando dados não validados ou não parametrizados são concatenados diretamente em queries HQL (Hibernate Query Language) ou em SQL nativo executado via Hibernate, permitindo que um atacante injete código SQL malicioso. O framework não sanitiza automaticamente — a responsabilidade é do desenvolvedor usar queries parametrizadas.
Um formulário de busca recebe um nome e o código faz `session.createQuery("FROM Usuario WHERE nome = '" + nomeBuscado + "'")`. Se nomeBuscado for `' OR '1'='1`, a query retorna todos os usuários. Pior: um atacante pode deletar tabelas ou roubar dados.
Use HQL parametrizado com setParameter() ou setString(), ou SQL nativo com NamedParameterStatement. Exemplo: `session.createQuery("FROM Usuario WHERE nome = :nome").setParameter("nome", nomeBuscado)`. Nunca concatene entrada de usuário direto na query.