知识大全 php intval() 小数时安全漏洞分析
Posted 函数
篇首语:时间是把锋利的刀,成全过我的疯狂,也粉碎过我的梦想。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php intval() 小数时安全漏洞分析相关的知识,希望对你有一定的参考价值。
变量转成整数类型 语法 int intval(mixed var int [base]) 返回值 整数 函数种类 PHP 系统功能 内容说明 本函数可将变量转成整数类型 可省略的参数 base 是转换的基底 默认值为 转换的变量 var 可以为数组或类之外的任何类型变量 intval()使用不当的安全漏洞分析 intval函数有个特性 直到遇上数字或正负符号才开始做转换 再遇到非数字或字符串结束时()结束转换 在某些应用程序里由于对intval函数这个特性认识不够 错误的使用导致绕过一些安全判断导致安全漏洞 二 分析 代码如下 复制代码 PHP_FUNCTION(intval) zval **num **arg_base; int base; switch (ZEND_NUM_ARGS()) case : if (zend_get_parameters_ex( &num) == FAILURE) WRONG_PARAM_COUNT; base = ; break; case : if (zend_get_parameters_ex( &num &arg_base) == FAILURE) WRONG_PARAM_COUNT; convert_to_long_ex(arg_base) base = Z_LVAL_PP(arg_base) break; default: WRONG_PARAM_COUNT; RETVAL_ZVAL(*num ) convert_to_long_base(return_value base) Zend/zend_operators c 》convert_to_long_base() …… case IS_STRING: strval = Z_STRVAL_P(op) Z_LVAL_P(op) = strtol(strval NULL base) STR_FREE(strval) break; 当intval函数接受到字符串型参数是调用convert_to_long_base()处理 接下来调用Z_LVAL_P(op) = strtol(strval NULL base) 通过strtol函数来处理参数 函数原型如下 long int strtol(const char *nptr char **endptr int base) 这个函数会将参数nptr字符串根据参数base来转换成长整型数 参数base范围从 至 或 参数base代表采用的进制方式 如base值为 则采用 进制 若base值为 则采用 进制等 流程为 strtol()会扫描参数nptr字符串 跳过前面的空格字符 直到遇上数字或正负符号才开始做转换 再遇到非数字或字符串结束时()结束转换 并将结果返回 那么当intval用在if等的判断里面 将会导致这个判断实去意义 从而导致安全漏洞 三 测试代码 代码如下 复制代码 <?php $o = ; for($a = ; $a < ; $a++) $o += ; echo <br />intval($o) = intval($o) if(intval($o)) print( true ) else print( false ) ?> 输出结果 intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = false intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true intval( ) = true …… php intval 与 int 的区别 代码如下 复制代码 $t = ; echo gettype((int)($t)) echo <hr> ; echo gettype(intval($t)) //输出结果 integer integer value: $t = a ; echo gettype((int)($t)) echo <hr> ; echo gettype(intval($t)) //结果 integer integer value: $string= a ; $string =intval($string) echo $string 的值 $string $string 的值 ;//单引号不会输出变量 将原样输出 $string =(int)($string) echo $string cha138/Article/program/Java/hx/201311/26835相关参考
2又8分之7化成小数是多少2又8分之7化成小数是多少分析:根据分数的意义2又7/8=2+7/8=2+0.875=2.8753右2分之1化成小数是多少?2右2分之1化成小数是多少?4分之3化成小数是多少
知识大全 web上存漏洞及原理分析、防范方法(安全文件上存方法)
cha138/Article/program/PHP/201311/20937
php分析域名!写法方法!调用就可以得出域名 <?//转载保留来源于//#######################分析域名#######################function
本篇文章是对php中注册时输入信息验证器的实现方法进行了详细的分析介绍需要的朋友参考下 对输入信息进行验证的类(主要用于验证用户名密码重复密码邮箱可添加其它功能)复制代码代码如下:<
PHP系统命令函数使用分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本篇文章是对PHP中系统命
PHPWeb开发学习实录:PHP注释实例分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n
提升PHP执行速度全攻略分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP的优点之一是速
PHPWeb开发学习实录:界定PHP代码实例分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
用实例分析PHP5异常处理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <?php/***■㈠
PHPWeb开发学习实录:PHP函数的调用实例分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!