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

时间:2017-01-15 12:40:50

标签: database spring-data spring-data-jpa sql-injection

我正在尝试查找有关Spring Security JPA的信息,以及是否保护像.save()这样的方法不受sql注入。

例如,我有对象Customer.,我希望将其保存到我的数据库中。 我正在使用CustomerRepository Spring实现来操作该实体。 客户的构造函数使用来自用户的参数。当一切都上演时,我正在调用.save()。这样可以安全地防止SQL注入吗?或者我应该先进行检查吗?

1 个答案:

答案 0 :(得分:4)

List results = entityManager.createNativeQuery("Select * from Customer where name = " + name).getResultList(); 是安全的,只有本机查询的使用才容易受到攻击。

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

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

MongoClient.connect(url, function(err,db){});