PHP代码审计_用==与===的区别

背景介绍

比较 =====的差别

== 是等于符号,=== 是恒等于符号,两个符号的功能都是用来比较两个变量是否相等的,只不过两个符号的比较维度不一样,导致各自的使用领域是不一样的。

使用案例
0==0
返回true
0=="0"
返回true

0===0
返回true
0==="0"
返回flase

总结
=== 比较两个变量的值和类型
== 只比较两个变量的值
那么就可以得出== 两个变量中的一个变量替换成别的类型就会有绕过的风险

如何审计

代码审计中先搜索哪个表达式里使用了==比较操作符,在跟踪其中的变量是否来之外部输入,如果是外部输入的,那就有绕过风险。

绕过案例1


返回:密码正确!

用=== 可以避免

绕过案例2

md5('240610708')==md5('QNKCDZO'); //True
md5('240610708')===md5('QNKCDZO'); //False

君何不畅谈一番?

Original: https://www.cnblogs.com/mysticbinary/p/12571275.html
Author: Mysticbinary
Title: PHP代码审计_用==与===的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578347/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Sharding-jdbc 5.1.2案例

    简介 sharding-jdbc案例,版本5.1.2 springboot + mybatis-plus + sharding-jdbc 项目地址:sharding-jdbc-ex…

    Linux 2023年6月7日
    0119
  • 简单交叉编译学习

    交叉编译 交叉编译是在一个平台上生成另一个平台上的可执行代码。 同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。通常是自己的电脑写好代码编译…

    Linux 2023年6月7日
    0133
  • linux内核源代码组织结构

    linux版本 linux 3.6.24 第一个数字主版本号 第二个数字是偶数代表是稳定版 第三个代表修订次数 Original: https://www.cnblogs.com/…

    Linux 2023年6月7日
    0104
  • Linux—磁盘管理

    Linux 磁盘管理 磁盘是一种计算机的外部存储器设备,由一个或多个覆盖有磁性材料的铝制或玻璃制的碟片组成,用来存储用户的信息,这种信息可以反复地被读取和改写;绝大多数磁盘被永久封…

    Linux 2023年6月7日
    0109
  • 数字证书编码ASN.1

    任务详情 参考附件中图书p223 中13.2的实验指导,完成DER编码 序列号=1174(0x0496),证书签发者 DN=”CN=Virtual CA,C=CN&#8…

    Linux 2023年6月8日
    059
  • Linux 配置Maven(避免踩坑篇)

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 二、下载好的maven安装包放在磁盘的 /usr/local/ 目录下,如下图: 三、解压该压缩文件 tar -z…

    Linux 2023年5月27日
    0100
  • 用全域安全防范美国NSA对西工大的网络攻击

    上周写的一篇文章《全域安全:一种运行时安全管理模型》,向大家介绍了全域安全管理模型,它是如何在Laxcus分布式操作系统的分布环境下,解决了分布式应用业务的全流程安全管理问题。其中…

    Linux 2023年6月6日
    0104
  • 【redis使用全解析】常见运维操作

    $ redis-server redis.conf 常见选项: ./redis-server (run the server with default conf) ./redis-…

    Linux 2023年5月28日
    074
  • MySQL多实例安装部署

    MySQL多实例安装部署 1、MySQL多实例概念 多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个MYSQL服务进程,这些服务进程…

    Linux 2023年6月7日
    0120
  • zabbix自定义监控进程与日志

    zabbix自定义监控进程与日志 zabbix自定义监控进程与日志 zabbix自定义监控进程 zabbix自定义监控日志 zabbix自定义监控进程 现在我们需要监控客户端的某一…

    Linux 2023年6月13日
    0127
  • 代码审计-Typecho反序列化getshell

    0x01 漏洞代码 install.php: php $config = unserialize(base64_decode(Typecho_Cookie::…

    Linux 2023年5月28日
    093
  • protobuf 的交叉编译使用(C++)

    为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,在进程间通信或者设备之间通信能够提高通信速率。下面介绍 …

    Linux 2023年6月7日
    0144
  • 机器学习入门–图学习基础01

    图表示学习入门知识 数学基础看文章理解图的拉普拉斯变换,解答了上一周文章公式中的L拉普拉斯矩阵是怎么来的 本文仅限我个人记录学习历程所用,目前是大一在读,刚刚接触AI领域。如有不足…

    Linux 2023年6月6日
    087
  • Redis持久化原理 — RDB与AOF详细解释

    一、持久化的作用 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化Redis所有数据保持在内存中,对数据的更新将异步地保存…

    Linux 2023年5月28日
    074
  • Conda虚拟环境中的pip,python 等路径是base环境而非本虚拟环境

    现象 一次运行项目发现,原本可以正常运行的项目,突然提示有个包不存在,但是经过 pip list 发现在我的虚拟环境中是存在这个包的,并且此时我是正常的位于我的虚拟环境中。 报错:…

    Linux 2023年6月7日
    097
  • Sharding-jdbc + Seata + Nacos整合

    前置条件 先了解Sharding-jdbc、Seata、Nacos这三样东西各自的作用以及单独使用时的配置。 如果已经做过Seata + Nacos的整合的,直接看最后的 Seat…

    Linux 2023年6月7日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球