首页 > 代码库 > intval()
intval()
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()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。