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获得内容和属性示例代码
Jan 16 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
JavaScript中Window对象的属性及事件
Dec 25 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
Sep 05 Javascript
bootstrap table使用入门基本用法
May 24 Javascript
jQuery+HTML5实现WebGL高性能烟花绽放动画效果【附demo源码下载】
Aug 18 jQuery
Vue 组件间的样式冲突污染
Aug 31 Javascript
vue-cli常用设置总结
Feb 24 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
Sep 05 Javascript
vue中的计算属性和侦听属性
Nov 06 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
Syphon 秘笈
2021/03/03 冲泡冲煮
phpmyadmin MySQL 加密配置方法
2009/07/05 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
Javascript Global对象
2009/08/13 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
简单谈谈javascript中this的隐式绑定
2016/02/22 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
深入理解AngularJS中的ng-bind-html指令和$sce服务
2016/09/08 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
python基础教程之python消息摘要算法使用示例
2014/02/10 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
在Python的Flask框架中构建Web表单的教程
2016/06/04 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Python小进度条显示代码
2019/03/05 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
计算机开发个人求职信范文
2013/09/26 职场文书
大学生实习自我鉴定
2013/12/11 职场文书
英语故事演讲稿
2014/04/29 职场文书
学生违纪检讨书200字
2014/10/21 职场文书
综合管理员岗位职责
2015/02/11 职场文书
不同意离婚答辩状
2015/05/22 职场文书