Zum Inhalt springen

Raw SQL Injection Risk (ARCH4055)

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

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.

String sql = "SELECT * FROM users WHERE email = '" + email + "'";
Query q = entityManager.createNativeQuery(sql, User.class);
List<User> users = q.getResultList();
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.