普通的列表模糊查询,可能会被sql注入利用,造成数据泄漏,严重的甚至导致删表删库!

程序中sql语句拼装:

$sql = 'student_name like '"%'.$name.'%"';  
貌似正常的sql语句
SELECT * FROM tblStudent WHERE unit_name like "%aaa%" order by create_time desc limit 0, 30 ;
倘若想要借此进行sql注入,input输入框中输入       aaa %" or "1%" = "1    ,则sql语句被拼接为
SELECT * FROM tblStudent WHERE  unit_name like "%aaa %" or "1%" = "1%" order by create_time desc limit 0, 30  显示所有的列.  
这似乎无关痛痒
倘若input输入框换成 
sql语句成为           aaa%";drop table tbl_test;#

SELECT * FROM tblStudent WHERE unit_name like "%aaa%";drop table tbl_test;#%" order by create_time desc limit 0, 30;
#表示注释
那么独立出sql语句
drop table tbl_test;
造成删表
 
 
解决方法很简单:
 
$binName     = bin2hex("%$name%");
$arrConds[] = " course_name like unhex('$binName')"; sql:
SELECT * FROM tblStudent WHERE unit_name like hex('2520636f7572736525223b64726f70207461626c652074626c5f746573743b2325') order by create_time desc limit 0, 30;

 

 

最新文章

  1. the import android cannot be resolved
  2. UICollectionView移动
  3. UIScrollView的滚动位置设置
  4. [收藏]Spring Security中的ACL
  5. 《我是一只IT小小鸟》阅读笔记
  6. Verilog Tips and Interview Questions
  7. Linux企业级开发技术(1)——epoll企业级开发之简介
  8. 如何禁止KEIL初始化RAM为零& 如何判断是软复位还是上电复位
  9. ubuntu终端命令
  10. 【第二篇】学习 android 事件总线androidEventbus之异步事件的传递
  11. http response
  12. Xcode上传代码到github
  13. 踩坑学习python自动化测试第一天!
  14. SSM面试题
  15. CentOS7 开启网卡,设置开机启用网卡
  16. python闭包和延迟绑定
  17. java jni 调用c++ opencv代码成功范例
  18. [EffectiveC++]item45:运用成员函数模板接受所有兼容类型
  19. 利用eclipse中的各种功能帮助你理解代码
  20. Pycharm实现服务器端代码的远程调试

热门文章

  1. Objective-C - - 字符串与数字互相转换
  2. 666 专题三 KMP & 扩展KMP & Manacher
  3. C#方法参数总结
  4. java中匹配中文的正则表达式
  5. I.MX6 Android 5.1.1 下载、编译
  6. python单元测试之unittest框架使用总结
  7. 聊聊Spring的核心组件
  8. win7下出现'telnet' 不是内部或外部命令,也不是可运行的程序或批处理文件的解决方法
  9. UI:一个IOS工程的标准框架
  10. UIAlterController 的使用