此JPA查询是否容易受到SQL注入攻击?

Bri*_*ian 2 java sql jpa sql-injection

我有一个库,它基于调用者提供的JPA WHERE语句执行查询.我正在执行以下JPA查询:

public void executeQuery(String jpaWhereStatement) {
String queryString = "SELECT entity FROM " + MyEntity.class.getSimpleName() + " entity WHERE " + jpaWhereStatement;
}
Run Code Online (Sandbox Code Playgroud)

查询参数仍然使用插入query.setParameter(),但我担心我可能会允许SQL注入攻击.如果这是易受攻击的,我该如何修复此代码?

Cod*_*ian 6

在不了解呼叫者的情况下,很难说.这可能是有漏洞存在,如果你在不小心产生的语句.总的来说,这种方法对我来说看起来不错.我个人会更明确地说明如何生成WHERE子句并始终使用参数.

作为一般规则,永远不要相信任何用于构造SQL语句的数据,无论它来自客户端还是来自数据库.