php is_numberic函数造成的SQL注入漏洞


Posted in Javascript onMarch 10, 2014

一、is_numberic函数简介
国内一部分CMS程序里面有用到过is_numberic函数,我们先看看这个函数的结构
bool is_numeric (mixed $var)
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
二、函数是否安全
接下来我们来看个例子,说明这个函数是否安全。

$s = is_numeric($_GET['s'])?$_GET['s']:0;
$sql="insert into test(type)values($s);";  //是 values($s) 不是values('$s')
mysql_query($sql);

上面这个片段程序是判断参数s是否为数字,是则返回数字,不是则返回0,然后带入数据库查询。(这样就构造不了sql语句)
我们把‘1 or 1' 转换为16进制 0x31206f722031 为s参数的值
程序运行后,我们查询数据库看看,如下图:
php is_numberic函数造成的SQL注入漏洞
如果再重新查询这个表的字段出来,不做过滤带入另一个SQL语句,将会造成2次注入.
三、 总结
尽量不要使用这函数,如果要使用这个函数,建议使用规范的sql语句,条件加入单引号,这样16进制0x31206f722031就会在数据库里显示出来。而不会出现1 or 1。
Javascript 相关文章推荐
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
javascript调试之DOM断点调试法使用技巧分享
Apr 15 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
Jun 06 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
javascript检测移动设备横竖屏
May 21 Javascript
js实现单张图片平移切换效果
Oct 11 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
微信小程序调用微信支付接口的实现方法
Apr 29 Javascript
解决layer弹出层中表单不起作用的问题
Sep 09 Javascript
关于layui flow loading占位图的实现方法
Sep 21 Javascript
关于JavaScript对象的动态选择及遍历对象
Mar 10 #Javascript
使用js操作css实现js改变背景图片示例
Mar 10 #Javascript
红米手机抢购的js代码
Mar 10 #Javascript
按下回车键指向下一个位置的一个函数代码
Mar 10 #Javascript
用js判断输入是否为中文的函数
Mar 10 #Javascript
用IE重起计算机或者关机的示例代码
Mar 10 #Javascript
屏蔽相应键盘按钮操作
Mar 10 #Javascript
You might like
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
Javascript实现的类似Google的Div拖动效果代码
2011/08/09 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
用JS动态改变表单form里的action值属性的两种方法
2016/05/25 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
Vue实现数字输入框中分割手机号码的示例
2017/10/10 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Python中input和raw_input的一点区别
2014/10/21 Python
Python实现的计数排序算法示例
2017/11/29 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
Python 一键获取百度网盘提取码的方法
2019/08/01 Python
Python 闭包,函数分隔作用域,nonlocal声明非局部变量操作示例
2019/10/14 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Python实现自动签到脚本功能
2020/08/20 Python
Python importlib模块重载使用方法详解
2020/10/13 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
Forever 21美国官网:美国标志性快时尚品牌
2017/02/20 全球购物
房地产推广策划方案
2014/05/19 职场文书
学校志愿者活动总结
2014/06/27 职场文书
运动会跳远广播稿
2015/08/19 职场文书
2016大学生优秀志愿者事迹材料
2016/02/25 职场文书
MySQL触发器的使用
2021/05/24 MySQL
react 项目中引入图片的几种方式
2021/06/02 Javascript
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS