Spring boot: Repository 接口 sql 注入保护

Spring boot: Repository interface sql injection protection

我的 Spring 引导应用程序中有一个存储库界面,如下所示。

@Repository
public interface CounterRepository extends JpaRepository<Counter, String> {
    Counter findByMediaName(String mediaName);
}

没有此接口的实现。这只是 Spring 启动魔法。我想知道 mediaName 参数是否存在 SQL 注入 风险?我正在使用 Spring Boot 2.2.6.RELEASE

不,没有。它将创建一个 Criteria api 查询(以正确的方式),它将转义参数。 这就像你使用准备好的语句。

这是一个常见的误解。 JPA 和其他 ORM 使我们免于创建手动编码的 SQL 语句,但它们不会阻止我们编写易受攻击的代码。 enter link description here

How to How to Fix SQL Injection using the Java Persistence API (JPA)

SQL injection: when a prepared statement is not enough

Query Parameters in JPA