美文网首页
php中is_numeric函数的安全漏洞

php中is_numeric函数的安全漏洞

作者: 禅大师 | 来源:发表于2019-01-17 22:26 被阅读0次

很多CMS用到过is_numberic函数,我们先看看这个函数的结构
bool is_numeric (mixed $var)
如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
这个函数本身没有什么问题,但是和mysql结合起来就容易出问题,那是因为is_numeric判断的时候,当碰到16进制数的时候,也会判断成数字,如:

echo is_numeric('0x233333');   # 1

而在mysql中,插入0x开头的16进制数的时候,会自动转成字符插入:
例如:

$s = is_numeric($_GET['s'])?$_GET['s']:0;
$sql="insert into test(type)values($s);";
mysql_query($sql);

代码的本意是想过滤掉字符输入,而当输入的时候,用户恶意地以16进制格式输入时,就容易绕过检查,插入恶意代码,进而可能会导致SQL注入的发生。
因此,要避免这样的漏洞发生,可以考虑采用正则表达式的方法来取代is_numberic函数。

相关文章

  • php中is_numeric函数的安全漏洞

    很多CMS用到过is_numberic函数,我们先看看这个函数的结构bool is_numeric (mixed ...

  • PHP(一)

    PHP is_numeric()函数is_numeric() 函数用于检测变量是否为数字或数字字符串。语法:boo...

  • PHP中数字检测is_numeric与ctype_digit的区

    PHP中的两个函数is_numeric和ctype_digit都是检测字符串是否是数字,但也存在一点区别 is_n...

  • 危险的is_numeric——PHPYun 2015-06-26

    今天分析是PHPYun的一个二次注入漏洞(漏洞详情)。 0x00 知识前提 PHP提供了is_numeric函数,...

  • php弱类型

    前言: 本题考虑的是php弱类型、is_numeric()、int()强制类型转换 代码: 知识点: 分析: 代码...

  • bugku 矛盾

    题目是用 GET类型的 PHP 所以可以考虑 大概方向是改网址 之后,来看内容 关键在于 is_numeric($...

  • php中的匿名函数和闭包

    php中的匿名函数和闭包(closure) 一:匿名函数 (在php5.3.0 或以上才能使用) php中的匿名函...

  • 揭开socket的神秘面纱

    php中socket的应用 php中socket函数 函数名 描述 socket_accept() 接受一个Soc...

  • PHP函数式编程

    一、函数简介 1.PHP中的函数就是完成某些功能的代码段2.PHP中的函数分为系统函数和自定义函数 二、自定义函数...

  • 解决scandir() has been disabled

    vim php.ini 将scandir()函数从PHP的配置文件中的禁用函数里面删除,重启php-fpm和nginx

网友评论

      本文标题:php中is_numeric函数的安全漏洞

      本文链接:https://www.haomeiwen.com/subject/lpbwdqtx.html