spring SQL 注入中的@Query注解安全吗?

Is the @Query annotation in spring SQL Injection safe?

对于 Spring,将传递给 @Query 注释的字符串参数作为纯数据处理,例如,如果您使用 PreparedStatement class 或任何防止 SQL 注入的方法?

final String MY_QUERY = "SELECT * FROM some_table WHERE some_column = ?1";

@Query(value=MY_QUERY, nativeQuery = true)
List<SomeEntity> findResults(String potentiallyMaliciousUserInput);

底线:上面的代码是否容易受到 SQL 注入?

看起来 Spring Data 的 @Query 只是 JPA 的包装器

看到这个 SO 答案:Are SQL injection attacks possible in JPA?

在查询中您使用绑定变量而不是字符串连接(这将容易受到 SQL 注入的攻击),所以我认为您的示例在 SQL 注入的漏洞方面是安全的。