小编unS*_*inn的帖子

JDBI如何在防止SQL注入的同时动态创建WHERE子句?

我想动态过滤JDBI查询.

参数列表通过REST从UI传递,例如

http://localhost/things?foo=bar&baz=taz
http://localhost/things?foo=buz
Run Code Online (Sandbox Code Playgroud)

哪个(笨拙地)构建(Jersey @Context UriInfo :: getQueryParameters - > StringBuilder)是这样的:

WHERE foo=bar AND baz=taz
Run Code Online (Sandbox Code Playgroud)

并传递给JDBI,如下所示:

@UseStringTemplate3StatementLocator
public interface ThingDAO {
   @SqlQuery("SELECT * FROM things <where>)
   List<Thing> findThingsWhere(@Define("where") String where);
}
Run Code Online (Sandbox Code Playgroud)

据我所知,当前的实现容易受到SQL注入的攻击.我显然可以清理列名而不是值.1

必须有一个更优雅和SQL注入证明的方法来做到这一点.

java rest jdbi dropwizard

5
推荐指数
1
解决办法
3678
查看次数

标签 统计

dropwizard ×1

java ×1

jdbi ×1

rest ×1