2020/2/3 PHP代码审计之PHP弱类型
0x00 简介 php中有两种比较的符号 == 与 === <?php 2 $a = $b ; 3 $a===$b ; 4 ?> === 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 == 在进行比较的时候,会先将字符串类型转化成相同,再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行 0x01 变量类型 标准类型:布尔 boolen,整型 integer,浮点 float,字符 string 复杂类型:数组 array,对象 object 特殊类型:资源 resource 0x02 操作之间的比较 1:字符串和数字比较 2:数字和数组的比较 3:字符串和数组比较 4:“合法数字+e+合法数字”类型的字符串。 5:==和=== 0x03字符串和数字比较 <?php var_dump("admin"==0); //true var_dump("1admin"==1); //true var_dump("admin1"==1) //false var_dump("admin1"==0) //true var_dump("0e123456"=="0e4456789"); //true ?> //上述代码可自行测试 1 观察上述代码,"admin"==0 比较的时候,会将admin转化成数值,强制转化