• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Mysql分页负数sql攻打_mysql

mysql 搞代码 7年前 (2018-06-08) 115次浏览 已收录 0个评论

mysql分页负数sql攻击

1 攻击分析

   CleverCode的运维同事给我说,他在查看mysql的错误日志的时候,发现有大量的下图的错误,所以有人是在正对某个地址进行攻击。大量出现这个错误的原因是mysql在limit不支持负数。通常我们分页的时候,url一般都是写成http://xxx.com?page=1&pageSize=20,即获取第一页数据。每页20行。但是如果传入的是http://xxx.com?page=-1&pageSize=20。就会出现以下错误。

Mysql分页负数sql攻打_mysql

2 有问题的PHP代码

function getUserLoginLog($page,$pageSize){          //参数检查     if(!is_int($page) || !is_int($pageSize)){         return;     }          $start = ($page - 1) * $pageSize;      $sqlStr = "select * from user_login_log order by id desc limit $start,$pageSize";     //执行sql语句     //.....              //如果page=-1,pageSize=20,以上语句就会变成     //$sqlStr = "select * from user_login_log order by id desc limit -40,20";         }

3 防止攻击的PHP代码

只需要判断$page,$pageSize为正整数即可。

function getUserLoginLog($page,$pageSize){          //参数检查     if(!is_int($page) || !is_int($pageSize)){         return;     }          //正整数检查     if($page < 1 || $pageSize < 1){         return;     }          $start = ($page - 1) * $pageSize;      $sqlStr = "select * from user_login_log order by id desc limit $start,$pageSize";          //执行sql语句     //.....                }

版权声明:

1)原创作品,出自"CleverCode的博客",转载时请务必注明以下原创地址,否则追究版权法律责任。

2)原创地址:http://blog.csdn.net/clevercode/article/details/45935593(转载务必注明该地址)。

3)分类地址:http://blog.csdn.net/clevercode/article/category/3262205(博客持续增加,关注请收藏

4)欢迎大家关注我博客更多的精彩内容:http://blog.csdn.net/CleverCode。

3楼Ollzo6小时前
谢谢分享
2楼Ollzo6小时前
谢谢分享
Re: CleverCode6小时前
回复Ollzon相互交流!
1楼chenfanglincfl前天 19:25
不错的项目经验 谢谢分享了
Re: CleverCode前天 20:22
回复chenfanglincfln客气,相互交流与学习,共同进步!

欢迎大家阅读《Mysql分页负数sql攻打_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Mysql分页负数sql攻打_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址