Fallos del tipo CWE-564

10 resultados

Injeção SQL em Hibernate

Ocorre quando a aplicação monta consultas Hibernate usando concatenação direta de entrada do usuário, sem usar parâmetros vinculados (bind parameters). O atacante consegue injetar cláusulas SQL maliciosas que alteram a lógica da consulta, contornando autenticação, extraindo ou modificando dados.

Ejemplo

Um sistema de login que monta a consulta HQL como `from User where username = '` + usuarioDigitado + `'`. Se o usuário digita `admin' or '1'='1`, a consulta executa e retorna todos os usuários, contornando a autenticação.

Cómo mitigar

Use sempre consultas parametrizadas do Hibernate: `createQuery("from User where username = :username").setParameter("username", usuarioDigitado)`. Alternativamente, use criteria API ou JPA com @Query + named parameters, nunca concatene entrada do usuário diretamente na consulta.