首页 > Web开发 > 详细

PHP弱类型

时间:2020-02-23 14:31:08      阅读:48      评论:0      收藏:0      [点我收藏+]

简介

11

简介

PHP在使用双等号(==)判断的时候,不会严格检验传入的变量类型,同时在执行过程中可以将变量自由地进行转换类型。由于弱数据类型的特点,在使用双等号和一些函数时,会造成一定的安全隐患

eg:

<?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 
?>

== 在进行比较的时候,会先将字符串类型转化成相同,再比较

=== 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较

Hash比较缺陷

研发人员在对比Hash2字符串的时候常常用到等于、不等于(!=)进行比较。如果Hash值以0e开头,后面都是数字,当与数字进行比较时,就会被解析成0x10n,会被判与0相等,攻击者可以绕过某些系统逻辑

PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以”0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以”0E”开头的,那么PHP将会认为他们相同,都是0。

攻击者可以利用这一漏洞,通过输入一个经过哈希后以”0E”开头的字符串,即会被PHP解释为0,如果数据库中存在这种哈希值以”0E”开头的密码的话,他就可以以这个用户的身份登录进去,尽管并没有真正的密码。

<?php
var_dump("0e123456789012345678901234567890"==="0"); //false
var_dump("0e123456789012345678901234567890"=="0"); //true
?>

 

 

引用:https://www.freebuf.com/news/67007.html

bool比较缺陷

111

简介

111

简介

111

简介

1111

PHP弱类型

原文:https://www.cnblogs.com/xhds/p/12349189.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!