安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > DataBase > Mybatis框架下SQL注入漏洞修复建议

Mybatis框架下SQL注入漏洞修复建议

时间:2017-06-02来源:未知 作者:安云网点击:
1.模糊查询like SQL注入修复建议 按照新闻标题对新闻进行模糊查询,可将SQL查询语句设计如下: select * from news where tile like concat(‘%’,#{title}, ‘%’), 采用预编译机制,避免了SQL语句拼接的问题,从根源上防止了SQL注入漏洞的产生

1. 模糊查询like SQL注入修复建议

//ANYUN.ORG

按照新闻标题对新闻进行模糊查询,可将SQL查询语句设计如下:

//安云网,anyun.org

select * from news where tile like concat(‘%’,#{title}, ‘%’),

//安云网,anyun.org

采用预编译机制,避免了SQL语句拼接的问题,从根源上防止了SQL注入漏洞的产生。

//内容来自安云网

2.  in之后的参数SQL注入修复建议 //copyright AnYun.ORG

在对新闻进行同条件多值查询的时候,可使用Mybatis自带循环指令解决SQL语句动态拼接的问题:

//本文来自安云网

select * from news where id in

//安云网咨询系统

<foreach collection=”ids” item=”item” open=”(“separator=”,” close=”)”>#{item} </foreach>

//ANYUN.ORG

3. order by SQL注入修复建议–在Java层面做映射 //安云网咨询系统

预编译机制只能处理查询参数,其他地方还需要研发人员根据具体情况来解决。如前面提到的排序情景: Select * from news where title =‘京东’ order by #{time} asc,这里time不是查询参数,无法使用预编译机制,只能这样拼接:Select * from news where title =‘京东’ order by ${time} asc 。 //安云网咨询系统

针对这种情况研发人员可以在java层面做映射来进行解决。如当存在发布时间time和点击量click两种排序选择时,我们可以限制用户只能输入1和2。当用户输入1时,我们在代码层面将其映射为time,当用户输入2时,将其映射为click。而当用户输入1和2之外的其他内容时,我们可以将其转换为默认排序选择time(或者click)。 //内容来自安云网

摘录于:http://www.open-open.com/lib/view/open1474963603800.html

//安云网,anyun.org


//内容来自AnYun.ORG

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容