database - Spring Data JPA 对 SQL 注入(inject)是否安全

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

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

例如,我有一个对象Customer.,我想将它保存到我的数据库中。 我正在使用 CustomerRepository Spring 实现对该实体进行操作。 客户的构造函数正在使用来自用户的参数。一切准备就绪后,我将调用 .save()。这对 sql 注入(inject)安全吗?还是我应该先进行检查?

最佳答案

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

List results = entityManager.createNativeQuery("Select * from Customer where name = " + name).getResultList();

如果您使用参数,您也可以使 native 查询安全。

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

关于database - Spring Data JPA 对 SQL 注入(inject)是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41661193/

相关文章:

database - 大小超过 10GB 的空数据库

php - 带IP的每日投票系统

java - 获取今天日期的所有优惠

spring - 不使用 spring batch + spring boot + sql server 应用程序运行 DDL 脚本

hibernate - 带有 Java 8 Stream NonUniqueResultException 的 Spring DATA JPA

SQL:如何将 Oracle 表中的 100,000 条记录分成 5 个 block ?

mysql - 如何在 MySQL 中创建关系表?

java - 如何在 Spring 使用@NamedQuery CrudRepository @Query?

spring-data - 在 Spring Repository 接口(interface)中使用 sort() 和 limit() 进行查询

java - Spring Boot数据JPA持久化到数据库报错