Spring Data JPA是否可以防止SQL注入

Dag*_*ago 5 database sql-injection spring-data spring-data-jpa

我正在尝试查找有关Spring Security JPA的信息,以及是否.save()保护诸如sql注入之类的方法。

例如,我有Customer.要保留到数据库的对象。我正在使用CustomerRepository Spring实现在该实体上进行操作。客户的构造函数正在使用用户的参数。当一切都准备就绪时,我正在调用.save()。这样可以防止sql注入吗?还是应该先进行检查?

jkl*_*lee 8

.save() 是安全的,只有本地查询的使用容易受到攻击。

List results = entityManager.createNativeQuery("Select * from Customer where name = " + name).getResultList();
Run Code Online (Sandbox Code Playgroud)

如果使用参数,也可以保护本机查询。

Query sqlQuery = entityManager.createNativeQuery("Select * from Customer where name = ?", Customer.class);
List results = sqlQuery.setParameter(1, "John Doe").getResultList();
Run Code Online (Sandbox Code Playgroud)

  • @jklee你有你的论点参考吗,似乎很难找到。 (4认同)