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实现动态增加删除表格行(兼容IE/FF)
Apr 02 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
Jul 04 Javascript
jQuery 回车事件enter使用示例
Feb 18 Javascript
js使用for循环与innerHTML获取选中tr下td值
Sep 26 Javascript
jQuery+json实现的简易Ajax调用实例
Dec 14 Javascript
基于jQuery实现仿百度首页选项卡切换效果
May 29 Javascript
BootStrap的table表头固定tbody滚动的实例代码
Aug 24 Javascript
原生JS实现旋转轮播图+文字内容切换效果【附源码】
Sep 29 Javascript
vue代码分割的实现(codesplit)
Nov 13 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 Javascript
Vue项目部署的实现(阿里云+Nginx代理+PM2)
Mar 26 Javascript
小程序实现录音上传功能
Nov 22 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程序
2006/10/09 PHP
PHP4.04简明安装
2006/10/09 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
php 常用的系统函数
2017/02/07 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
javascript时区函数介绍
2012/09/14 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
通过node-mysql搭建Windows+Node.js+MySQL环境的教程
2016/03/01 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
JavaScript onclick事件使用方法详解
2020/05/15 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
详解React中共享组件逻辑的三种方式
2021/02/02 Javascript
编写Python CGI脚本的教程
2015/06/29 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
使用C++扩展Python的功能详解
2018/01/12 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
财务会计实习报告体会
2013/12/20 职场文书
保护环境建议书400字
2014/05/13 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
员工自我评价范文
2015/03/11 职场文书
React列表栏及购物车组件使用详解
2021/06/28 Javascript
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL