码迷,mamicode.com
首页 > 其他好文 > 详细

intval()

时间:2017-02-04 16:39:20      阅读:305      评论:0      收藏:0      [点我收藏+]

标签:问题   echo   html   min   www   代码   code   ons   逻辑   

intval函数有个特性:"直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(\0)结束转换",

直接来看代码
<?php
$var="20170204";
if (intval($var))
echo "it‘s safe"."<br />";
echo ‘$var=‘.$var;
echo "<br>";
$var1="0 union select www.am0s.com from admin"; 
$var2="4 union select www.am0s.com from admin"; 
if (intval($var1))
echo "$var1<br/>"; 
if (intval($var2)) {
	echo $var2."<br/>";
}
echo intval($var)."<br />";
echo intval($var1)."<br />";
echo intval($var2);
?>
  上面的代码运行后输出
it‘s safe //intval(20170204)为true
$var=20070601
4 union select 1,1,1 from admin //intval(4 union select 1,1,1 from admin)为true
20170204 //intval(20170204) 
0 //intval(0 union select 1,1,1 from admin)
4 //intval(4 union select 1,1,1 from admin)
根据结果可以得出intval()会过滤掉非数字的字符,这点用来进行字符过滤是没问题的,但是如果用intval()进行条件判断的话,就会产生逻辑错误,造成判断条件的绕过。只需第一个字符为非0数字即可使条件为真。  

查看原文:http://www.am0s.com/functions/193.html

intval()

标签:问题   echo   html   min   www   代码   code   ons   逻辑   

原文地址:http://www.cnblogs.com/qiniuyhm/p/6365466.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!