[实践总结] 如何防护order by导致的SQL注入
2023-12-30 13:02:58
背景
如果order by
使用用户输入的内容而不经过校验,则会引起order by
类型SQL注入,可能导致数据库dos攻击。
如何防护?
第1步:找出给order by赋值的地方
1.使用PageHelper排序
PageHelper.startPage(pageNum , pageSize);PageHelper.orderBy("字段名 排序规律");
PageHelper.startPage(pageNum, pageSize, "字段名 排序规律");
Ctrl+Shift+F → startPage
→ Ctrl+Alt+F7 → Ctrl+Alt+H
2.使用自定义排序
XXXExample example = new XXXExample();
example.setOrderByClause("字段名1 ASC/DESC,字段名2 ASC/DESC,...");
Ctrl+Shift+F → .setOrderBy
→ Ctrl+Alt+H
3.使用Mybatis排序
查看Mybatis 的 SQL配置文件,order by使用的事${}
,导致SQL注入
Ctrl+Alt+H
第2步:判断order by使用值是否为外部入参
第3步:改进代码
3.1、order by使用的外部入参进行 白名单校验
3.2、SQL里的${}
→ #{}
参考
文章来源:https://blog.csdn.net/weixin_37646636/article/details/135300420
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!