知识大全 php内置函数intval()
Posted 函数
篇首语:没有加倍的勤奋,就既没有才能,也没有天才。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 php内置函数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等的判断里面 将会导致这个判断实去意义 从而导致安全漏洞
三 测试代码
//intval php
$var= ;
if (intval($var))
echo it s safe ;
echo $var= $var;
echo
;
$var = union select from admin ;
if (intval($var ))
echo it s safe too ;
echo $var = $var ;
WordPress <= wp trackback php Zend_Hash_Del_Key_Or_Index / sql injection exploit cha138/Article/program/PHP/201311/20990相关参考
ORACLE内置函数大全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL中的单记录函数AS
初学ASP:常用ASP内置函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!函数就是该语言封装了的
Oracle内置SQL函数(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 字符函数——返回
认识OracleSQL内置函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! SQL中的单记录函
PHP5.4内置Web服务器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP是一种脚本语言
将Oracle10g内置的安全特性用于PHP 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 当今
知识大全 php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
php调用MsSQL存储过程使用内置RETVAL获取过程中的return值 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我
php技巧:几个比较实用的PHP函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! sys_ge
PHP常用函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! <?phpfunctio
PHP5函数小全 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 很多PHP前辈都写了PHP大全但