Spring Data JPA 是否可以安全地防止 SQL 注入
Is Spring Data JPA safe against SQL injection
我正在尝试查找有关 Spring 安全 JPA 的信息,以及 .save()
等方法是否受到 sql 注入的保护。
例如,我有一个对象 Customer.
,我想将其保存到我的数据库中。
我正在使用 CustomerRepository Spring 实现对该实体进行操作。
客户的构造函数正在使用来自用户的参数。当一切都上演时,我正在调用 .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();
我正在尝试查找有关 Spring 安全 JPA 的信息,以及 .save()
等方法是否受到 sql 注入的保护。
例如,我有一个对象 Customer.
,我想将其保存到我的数据库中。
我正在使用 CustomerRepository Spring 实现对该实体进行操作。
客户的构造函数正在使用来自用户的参数。当一切都上演时,我正在调用 .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();