Raw SQL Injection Risk (ARCH4055)
Ce contenu n’est pas encore disponible dans votre langue.
Key java.orm.raw-sql-injection-risk · Severity critical · Category orm
Building raw SQL via string interpolation opens SQL injection and busts the query plan cache. Pass values as bound parameters instead.
Incorrect
Section titled “Incorrect”String sql = "SELECT * FROM users WHERE email = '" + email + "'";Query q = entityManager.createNativeQuery(sql, User.class);List<User> users = q.getResultList();Correct
Section titled “Correct”Query q = entityManager.createNativeQuery( "SELECT * FROM users WHERE email = :email", User.class);q.setParameter("email", email);List<User> users = q.getResultList();Never concatenate user values into raw SQL; always use bound parameters.