Falhas do tipo CWE-564

10 resultados

Injeção SQL em Hibernate

Ocorre quando parâmetros de entrada do usuário são concatenados diretamente em consultas Hibernate (HQL, Criteria) sem sanitização ou uso de placeholders. O atacante injeta código SQL/HQL malicioso que é executado no banco de dados com os privilégios da aplicação, permitindo roubo, alteração ou exclusão de dados.

Exemplo

Um sistema de busca monta uma query assim: `session.createQuery("FROM User WHERE name = '" + userInput + "'")`. Se o usuário entrar `' OR '1'='1`, a consulta executa uma lógica não intencional que retorna todos os usuários em vez de fazer a busca legítima.

Como mitigar

Use sempre consultas parametrizadas (named parameters em HQL: `setParameter()`) ou Criteria API com restrições tipadas. Nunca concatene strings de entrada diretamente na query. Valide e normalize inputs, mas trate isso como camada adicional, não como defesa primária.