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 JSON的解析方式
Jul 25 Javascript
JavaScript DOM 学习第七章 表单的扩展
Feb 19 Javascript
基于jQuery实现二级下拉菜单效果
Feb 01 Javascript
JavaScript从0开始构思表情插件
Jul 26 Javascript
Three.js学习之Lamber材质和Phong材质
Aug 04 Javascript
JS实现图片上传预览功能
Nov 21 Javascript
react-native使用react-navigation进行页面跳转导航的示例
Sep 07 Javascript
利用Vue构造器创建Form组件的通用解决方法
Dec 03 Javascript
Vue分页器实现原理详解
Jun 28 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
Sep 05 Javascript
vue 手机物理监听键+退出提示代码
Sep 09 Javascript
JS实现密码框效果
Sep 10 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进行MySQL删除记录操作代码
2008/06/07 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
PHP SOCKET编程详解
2015/05/22 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
PHP调用存储过程返回值不一致问题的解决方法分析
2016/04/26 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
javascript中创建对象的三种常用方法
2010/12/30 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
使用bootstrap实现多窗口和拖动效果
2016/09/22 Javascript
js提示框替代系统alert,自动关闭alert对话框的实现方法
2016/11/07 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
2018/11/13 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
mac系统安装Python3初体验
2018/01/02 Python
python算法与数据结构之单链表的实现代码
2019/06/27 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
最新pycharm安装教程
2020/11/18 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
python如何修改文件时间属性
2021/02/05 Python
构造器Constructor是否可被override?
2013/08/06 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
2013/01/26 面试题
巧克力蛋糕店创业计划书
2014/01/14 职场文书
生日寿宴答谢词
2014/01/19 职场文书
工程质检员岗位职责
2015/04/08 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python