PHP代码审计 ----- 弱类型

变量 的 类型        

        常见的  

        标准类型 布尔boolen 整型 integer    浮点 float  字符string

        复杂类型:数组array,对象object

        特殊类型:资源resource

变量是什么 ?  $ 符号在前面就是变量

操作之间的比较

        1.字符串 和  数组 的比较

var_dump(0 == "admin");

看一下比较, admin  字符串不是以数字开头,默认是0   0和0比较,是true

var_dump(0 == "admin");
var_dump(0 == "1admin");
var_dump(1 == "1admin");
var_dump(1 == "admin1");

以下结果

(2)数字和数组比较

//数字和数组
$arr = array();
var_dump(0 == $arr); //错

(3)字符串和数组比较

//字符串和数组
$arr = array();
var_dump('0' == $arr);//错

(4)“合法数字+e+合法数字" 类型的字符串

//xx + e + xx
var_dump("0e123" =="0e41234");//对   比较e之前的
var_dump("1e1" =="10");	//对

(5) == 和 ===

//判断 类型和值 是否相等

empty 和 isset

        变量为:0,"0", null , false, array()时,使用empty函数,返回的都为true
变量未定义或者为null时,

isset函数返回的为false,其他都未true

<?php
$a= null;
$b = 0;
$c = '';
var_dump(empty($a));
var_dump(empty($b));
var_dump(empty($c));

都是true

issert的

<?php
$a= null;
var_dump(isset($a));

 函数md5 比较

 md5(字符串);

必须传字符串,不是字符串的话,结果相同

函数strcmp

        strcmp ($str1,$str2);

$str1 比较的第一个字符长

$str2 比较的第二个字符长

 给一个不符合的类型,是否可以绕过呢?

比如,给一个数组

        ?pwd[] = xxx

in_array()和 array_search()

switch函数

如果switch是数字类型的case的判断时,switch会将参数转换为int类型

输出:success

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值