我正在寻找关于Spring Security JPA的信息,想知道像.save()
这样的方法是否受到SQL注入的保护。
例如,我有一个名为Customer
的对象,我想将其持久化到我的数据库中。
我正在使用CustomerRepository Spring实现来操作该实体。
Customer的构造函数使用来自用户的参数。当一切准备就绪时,我会调用.save()
。这种方法是否安全,能否防止SQL注入?还是应该先检查一下?
我正在寻找关于Spring Security JPA的信息,想知道像.save()
这样的方法是否受到SQL注入的保护。
例如,我有一个名为Customer
的对象,我想将其持久化到我的数据库中。
我正在使用CustomerRepository Spring实现来操作该实体。
Customer的构造函数使用来自用户的参数。当一切准备就绪时,我会调用.save()
。这种方法是否安全,能否防止SQL注入?还是应该先检查一下?
.save()
是安全的,只有使用本地查询才存在漏洞。
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();