ibatis防止sql注入
ibatis防止sql注入
酷游博客

ibatis防止sql注入

酷游
1月22日发布 /正在检测是否收录...

之前在ibatis直接执行已有sql语句中记录了如何直接执行sql语句。

想要执行这样一个语句,根据用户输入的条件,查询分数大于(小于、等于、大于等于、小于等于)某分数的应用的信息,但是查询的条件(大于、小于等)也是需要用户传进来的符号,所以代码这样写:


但是在ibatis的SQLMAP文件中使用$value$引入变量存在SQLInjection漏洞。
所以,将代码改成如下:


基本规则

用户使用的sql代码中能用#name#代替$name$的尽量用#name#替换.sql代码中不应当出现$符合的变量.($引入的变量会导致sql注入的风险)
以下说明order by和sort 需要输入动态参数时的处理方式

order by e.g.

select TABLE_NAME,TABLESPACE_NAME from user_tables order by $orderByColumn$ .

其中orderByColumn是数据库中的字段. 对这种元数据的请使用:$orderByColumn:METADATA$替换$orderByColumn$.

sort e.g.

select TABLE_NAME,TABLESPACE_NAME from user_tables order by TABLE_NAME $ordertype$

其中ordertype为用户输入的ASC,DESC.对这种关键字请使用 $ordertype:SQLKEYWORD$替换 $ordertype$ .

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 赞赏
评论
当前页面的评论已关闭
易航博客
SSL