当查询作为 Java 中方法的参数出现时,如何避免 SQL 注入?

Posted

技术标签:

【中文标题】当查询作为 Java 中方法的参数出现时,如何避免 SQL 注入?【英文标题】:How to avoid SQL injection when a query is coming as a parameter of a method in Java? 【发布时间】:2015-08-25 04:01:51 【问题描述】:
public static RepositoryItem[] executeQuery(Repository repository, String query,Object[] params)

    RepositoryItem[] data = null;

    try 
        RepositoryView repositoryView = repository.getView(viewName);
        RqlStatement statement = RqlStatement.parseRqlStatement(query);
    

查询是参数化查询。

【问题讨论】:

您需要更具体一点。您想阻止params 中包含的任何SQL 被执行,还是担心query 的内容? 【参考方案1】:

根据您使用的数据库,您可以使用具有只读访问权限的用户的凭据定义 SQL 连接或 DBConnectionPool。 任何未经授权的语句都将被 DBMS 拒绝。

【讨论】:

以上是关于当查询作为 Java 中方法的参数出现时,如何避免 SQL 注入?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java中将泛型对象作为方法参数传递? [复制]

我在写一个java泛型接口实现时为啥报出double为意外的类型啊?源程序如下!

java类内多个函数如何同步

如何在java方法中将数组作为参数传递?

java中LIST 出来的东东 作为参数放进一个方法,方法里改变了LIST,那是否就真的改变了?还是出了这个方法

java有参方法对象做参数