Spring SQL Injection中的@Query注释是否安全?

时间:2015-01-20 16:43:55

标签: java spring sql-injection spring-annotations

对于Spring,传递给@Query注释的字符串的参数是否被视为纯数据,例如,如果您使用的是PreparedStatement类或任何旨在阻止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注入?

2 个答案:

答案 0 :(得分:4)

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

请参阅此答案:Are SQL injection attacks possible in JPA?

答案 1 :(得分:0)

在查询中,您使用绑定变量而不是字符串连接(这将容易受到SQL注入攻击),因此我认为您的示例是针对SQL注入漏洞的保存。