java - 这个 JPA 查询是否容易受到 SQL 注入(inject)的攻击?

标签 java sql jpa sql-injection

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

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

仍然使用 query.setParameter() 插入查询参数,但我担心我可能会允许 SQL 注入(inject)攻击。如果此代码存在漏洞,我该如何修复此代码?

最佳答案

在不了解来电者的情况下,很难说。如果您没有仔细生成 where 语句,可能存在漏洞。总的来说,这种方法对我来说是个坏主意。我个人会更明确地说明您如何生成该 WHERE 子句并始终使用参数。

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

关于java - 这个 JPA 查询是否容易受到 SQL 注入(inject)的攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7030119/

相关文章:

java - 我正在阅读 Head First Java,但我对这个程序感到困惑

java - 将值从 JSP scriptlet 传递到 servlet

mysql - SQL——使用嵌套子查询进行计数

java - JPA 存储库 - 查询

java - Hibernate 可以对不同于字段名称的实体属性使用逻辑名称吗?

linux - 如何在CentOS linux上安装特定版本的jdk

java - java小程序中无法追踪的异常

sql - 在 postgresql 数据库中搜索包含特定单词的字符串

ios - 如何在 iphone 应用程序中显示实时数据?

java - Controller 和 hibernate 集成。未保存实体