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 相关文章推荐
根据地区不同显示时间的javascript代码
Aug 13 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
May 30 Javascript
js实现按一下删除键删除整个单词附demo
Sep 05 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
Oct 21 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
Active控件问题小结(附解决办法)
Jun 09 Javascript
js实现文字跑马灯效果
Feb 23 Javascript
EasyUI为Numberbox添加blur事件的方法
Mar 05 Javascript
详解vue-router2.0动态路由获取参数
Jun 14 Javascript
vue项目初始化到登录login页面的示例
Oct 31 Javascript
vuex刷新后数据丢失的解决方法
Oct 18 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+javascript模拟Matrix画面
2006/10/09 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
php入门教程 精简版
2009/12/13 PHP
php简单实现查询数据库返回json数据
2015/04/16 PHP
php array_map使用自定义的函数处理数组中的每个值
2016/10/26 PHP
php中数组最简单的使用方法
2020/12/27 PHP
文字幻灯片
2006/06/26 Javascript
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
JS来动态的修改url实现对url的增删查改
2014/09/05 Javascript
再探JavaScript作用域
2014/09/24 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
vue实现分页组件
2020/06/16 Javascript
Node.js爬虫如何获取天气和每日问候详解
2019/08/26 Javascript
Node使用Selenium进行前端自动化操作的代码实现
2019/10/10 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
Python使用Selenium模拟浏览器自动操作功能
2020/09/08 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
简历中求职的个人自我评价
2013/12/03 职场文书
年会活动策划方案
2014/01/23 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
python字典的元素访问实例详解
2021/07/21 Python