我正在尝试查找有关Spring Security JPA的信息,以及是否保护像.save()
这样的方法不受sql注入。
例如,我有对象Customer.
,我希望将其保存到我的数据库中。
我正在使用CustomerRepository Spring实现来操作该实体。
客户的构造函数使用来自用户的参数。当一切都上演时,我正在调用.save()
。这样可以安全地防止SQL注入吗?或者我应该先进行检查吗?
答案 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){});