请问jfinal 中如何预防SQL注入

@Override

public void configPlugin(Plugins me) {

//数据源一

// 扩展配置

Prop p = PropKit.use("config.txt");

C3p0Plugin cp = new C3p0Plugin(p.get("jdbcUrl"), p.get("userName"), p.get("passWord"));

me.add(cp);

ActiveRecordPlugin arp = new ActiveRecordPlugin(cp);

_MappingKit.mapping(arp);

me.add(arp);

}


---- ----------------------------------------------------------------------------------------------------

用的以上代码逻辑配置数据源,发布后被安全检测出存在SQL注入风险。

评论区

JFinal

2020-10-17 15:05

主要有两大手段:
1:Model、Db 内的所有数据库操作方法都使用的是 PreparedStatement,只要你的 sql 是用问号占位传递的参数,这个是天然防 sql 注入的

2:DruidPlugin 配置 WallFilter,这个是专业防注入的,这是第二层保护

一般来说,同时用了上面两个手段,是没有 sql 注入安全风险的,WallFilter 保护可以防止小白程序员没有在 sql 中使用问号占位