背景介绍

比较=====的差别

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

# 使用案例
0==0
返回true
0=="0"
返回true 0===0
返回true
0==="0"
返回flase # 总结
=== 比较两个变量的值和类型
== 只比较两个变量的值
那么就可以得出== 两个变量中的一个变量替换成别的类型就会有绕过的风险

如何审计

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

绕过案例1

<?php
header("Content-type: text/html; charset=utf-8");
$密码=000000;
$input="a中文"; # 外部输入的密码
if($密码==$input){
echo "密码正确!";
}else{
echo "密码错误!";
};
?>

返回:密码正确!

用=== 可以避免

绕过案例2

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

最新文章

  1. Scoped CSS规范草案
  2. LINK1123:failure during conversion to COFF:file invalid or corrupt
  3. Windows环境下使用Clover四叶草引导双硬盘安装OSX 10.11.5原版镜像
  4. 删除ECSHOP后台升级提示/下载最新补丁升级提示
  5. Java Phaser
  6. golang实现ping命令
  7. lintcode:Compare Strings 比较字符串
  8. 微软数学库XNAMATH(DirectXMath)
  9. Linux负载均衡概念与实践(二)
  10. PHP 发邮件不换行
  11. js href的用法
  12. blockUI
  13. HDU 4916 Count on the path
  14. mvc VIEW部分介绍
  15. github+hexo搭建自己的博客网站(六)进阶配置(搜索引擎收录,优化你的url)
  16. python接口自动化(四)--接口测试工具介绍(详解)
  17. 【ZCTF】easy reverse 详解
  18. Idea中的一些快捷键
  19. Herriott池的设计
  20. ELK部署与使用总结

热门文章

  1. 2020 CCPC-Wannafly Winter Camp Day2
  2. CSAPP_BombLab实验报告
  3. Codeforces Round #643 (Div. 2) B. Young Explorers (思维,贪心)
  4. MySql 执行 DELETE/UPDATE时,报 Error Code: 1175错误
  5. Jenkins 持续集成测试工具
  6. 洛谷P1522 [USACO2.4]牛的旅行 Cow Tours
  7. pthread_create函数
  8. Linux 驱动框架---input子系统框架
  9. 一个模块如何同时支持 ESM 和 CJS
  10. Vue Big Changes All in One