PHP特性

intval() 函数

  1. 再PHP 5 版本中默认不支持科学计数法,使用科学计数法绕过,而在php7中的intval函数则已经支持了科学计数法,可以正确返回科学计数法的值
  2. 使用其他进制绕过
    0b?? : 二进制
    0??? : 八进制 
    0X?? : 16进制
  3. 使用小数点绕过,4476 === intval("4476.0")
  4. 正整数的正号可有可无

in_array() 函数缺陷

在没有设置第三个参数的时候,in_array()进行的是弱类型比较,会将3.php转化为3进行比较,造成漏洞出现

include

 以字符‘/’分隔(而且不计个数),若是在前面的字符串所代表的文件无法被PHP找到,则PHP会自动包

含‘/’后面的文件——注意是最后一个‘/’。

is_numeric

is_numeric() 函数用于检测变量是否为数字或数字字符串。

语法:

bool is_numeric ( mixed $var )

 

$var:要检测的变量。

返回值:

  如果指定的变量是数字和数字字符串则返回 TRUE,否则返回 FALSE。

这个函数和mysql结合起来就容易出问题,那是因为is_numeric判断的时候,当碰到16进制数的时候,也会判断成数字

is_numeric函数对于空字符%00,无论是%00放在前后都可以判断为非数值,而%20空格字符只能放在数值后才会判断为非数值。