php is_numberic函数造成的SQL注入漏洞
时间:2023-07-18 00:32:25
一、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参数的值
程序运行后,我们查询数据库看看,如下图:
如果再重新查询这个表的字段出来,不做过滤带入另一个SQL语句,将会造成2次注入.
三、 总结
尽量不要使用这函数,如果要使用这个函数,建议使用规范的sql语句,条件加入单引号,这样16进制0x31206f722031就会在数据库里显示出来。而不会出现1 or 1。
标签:php,is,numberic函数,sql注入漏洞
0
投稿
猜你喜欢
SQL2000个人版 应用程序正常初始化失败0乘以C0000135失败
2024-01-27 05:09:39
简评:JavaScript将成Silverlight的最大对手?
2008-10-17 10:29:00
详细介绍ASP内置对象Response
2008-06-23 12:42:00
Python修改Excel数据的实例代码
2021-05-24 12:40:29
Python之用户输入的实例
2022-09-06 13:22:18
python缺失值填充方法示例代码
2023-06-28 12:23:24
CSS技巧之圆角背景与三角形
2010-10-19 12:40:00
Python 概率生成问题案例详解
2023-11-26 19:04:58
Python数据分析之使用scikit-learn构建模型
2023-11-10 23:19:10
Python中字符串对齐方法介绍
2022-07-18 06:54:50
python写入xml文件的方法
2023-01-01 15:08:54
微软建议的ASP性能优化28条守则(2)
2008-02-22 17:02:00
MySQL数据库中的各种乱码及其解决方法
2008-12-17 16:29:00
mysql中#{}和${}的区别详解
2024-01-12 21:37:17
CGArt®2008 贺岁刊电子杂志玉鼠闹春
2008-02-15 08:59:00
python之tensorflow手把手实例讲解猫狗识别实现
2021-12-26 14:46:11
Go语言实现互斥锁、随机数、time、List
2024-04-25 15:11:24
好的产品设计并非始于图片,而是对人的理解
2009-08-02 20:25:00
很全面的Mysql数据库、数据库表、数据基础操作笔记(含代码)
2024-01-15 11:19:42
浅析Python 条件控制语句
2023-08-31 02:59:46