in_array函数缺陷

in_array

in_array介绍

先来看一下in_array函数的介绍:
在这里插入图片描述

从上图的介绍可以看出:

  1. 这个函数的漏洞点就是如果第三个参数没有被设置或者设置为false时,那么从 h a y s t a c k 比较 haystack比较 haystack比较needle时,采用的就是弱类型比较。
  2. 如果第三个参数设置为了true,那么就会同时再检查类型

弱类型比较tips

弱类型比较时,如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行。
"0e"开头的字符串参与弱类型比较时,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以会将它转换成0。
纯字符串与数值进行弱类型比较时,会先将字符串强制转换成数值,也就是0。

看一个例子:

<?php
    var_dump('1a' == 1);          //true
    var_dump('1a' === 1);         //false
    var_dump('0e' == 0);          //true
    var_dump('0e' === 0);         //false
    var_dump('1234abc' == 1234);  //true
    var_dump('1234abc' === 1234); //false
    var_dump('0e12344abc' == 0);  //true
    var_dump('0e12344abc' === 0); //false
    var_dump('abcdefghik' == 0);  //true
    var_dump('abcdefghik' === 0); //false
?>

弱类型比较总结

1. md5碰撞
<?php
if (isset($_GET['username'<
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值