对于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注入?
答案 0 :(得分:4)
看起来Spring Data的@Query
只是JPA的一个包装
答案 1 :(得分:0)
在查询中,您使用绑定变量而不是字符串连接(这将容易受到SQL注入攻击),因此我认为您的示例是针对SQL注入漏洞的保存。