关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 13625|回复: 6

[Online开发] findForJdbc 方法,SQL拼字符串,能防SQL注入么??

[复制链接]
发表于 2018-8-1 10:49:58 | 显示全部楼层 |阅读模式
版本: 3.7.7 : 你们源码中有,有如下拼字符串的SQL: 能防SQL注入么::

String getCountSql ="SELECT count(notice.id) as count FROM t_s_notice notice LEFT JOIN t_s_notice_read_user noticeRead ON  notice.id = noticeRead.notice_id "
                                        + "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = '"+user.getId()+"' and noticeRead.is_read = 0";
                        List<Map<String, Object>> resultList2 =  systemService.findForJdbc(getCountSql);    ,   

这是demo 源码上写得 的,怎样才能防SQL注入??

还是你们已处理过了???
发表于 2018-8-1 11:16:42 | 显示全部楼层
收录
 楼主| 发表于 2018-8-1 11:34:39 | 显示全部楼层
spring-mvc.xml  ; 有一个 SQL注入拦截器  :
1.SQL注入拦截器 (暂时注释掉提高平台性能,需要此功能,可以放开注释)
2.然后再加上自已的内容上去,应该是可以了。
 楼主| 发表于 2018-8-1 17:25:50 | 显示全部楼层
还可以用这个方法:findForJdbcParam  
把上面代码改下,
String getCountSql ="SELECT count(notice.id) as count FROM t_s_notice notice LEFT JOIN t_s_notice_read_user noticeRead ON  notice.id = noticeRead.notice_id "
                                        + "WHERE noticeRead.del_flag = 0 and noticeRead.user_id = ? and noticeRead.is_read = 0";
                        List<Map<String, Object>> resultList2 =  systemService.findForJdbcParam(getCountSql,new Object[]{user.getId()});   
发表于 2018-8-1 19:29:26 | 显示全部楼层
3Q
发表于 2018-8-2 14:22:19 | 显示全部楼层
哥,user.getid这个user是怎么来的?sql注入还能通过改变我session中的变量达到目的的吗?
 楼主| 发表于 2018-8-5 07:49:48 | 显示全部楼层
jeecg_ty 发表于 2018-8-2 14:22
哥,user.getid这个user是怎么来的?sql注入还能通过改变我session中的变量达到目的的吗? ...

user.getid  , 这只是取值而已,具体看你情况了,就是页面输入的查询条件,
不明白session 跟 sql注入有什么联系??
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表