陣列繞過及php語言的特性

2021-09-27 04:34:38 字數 1129 閱讀 1282

php

判斷相等有兩個符號

== 只判斷數值是否相等,不管變數型別是什麼

=== 要求數值,和型別都要相等

php是一門弱語言

比如

<?php$a=

12345;$b

='12345hahahaha'

;//這個字串可以看成是整數12345,同樣字串'abcdef' 可以看成整數 0

$a==$b;

$a!===$b

;

陣列繞過

現在知道的有這麼多,以後還可以補,不會的時候可以蒙一發。

md5(),sha1(),strpos(),ereg(),strcmp()

如果傳入md5函式的引數為陣列型別,則返回null

null

===null 時可以通過陣列可以繞過 === md5判斷

注意啊,空字串和null,false都是以值為0儲存的,但是空字串的型別是string,null的型別是null,false是boolean。

null是一種特殊的型別.

兩種情況下為null

$var = null;

$var;

「」、0、「0」、null、false、array()、var $var; 以及沒有任何屬性的物件都將被認為是空的

strcmp

("foo"

,array()

)=>

null

+php warning

strcmp

("foo"

,new

stdclass)=

>

null

+php warning

strcmp

(function()

,"")=

>

null

+php warning

ereg函式的漏洞 :

存在%00截斷(已被preg_match

()替代)

輸入引數為陣列時返回值為null

sha1

(array()

)=null

//一種雜湊加密方式

php 陣列 鍵值 特性

key 可以是 integer 或者 string。value 可以是任意型別。此外 key 會有如下的強制轉換 包含有合法整型值的字串會被轉換為整型。例如鍵名 8 實際會被儲存為 8。但是 08 則不會強制轉換,因為其不是乙個合法的十進位制數值。浮點數也會被轉換為整型,意味著其小數部分會被捨去。例...

PHP語言與C語言的區別(控制結構 陣列 特性)

首先php語言是一種物件導向的語言而c語言是面向過程的。php主要是用來開發web程式的語言,而c語言是種廣泛使用的語言,尤其用來書寫一下比較複雜的後台 php和c語言一樣,有著if,else,elseif switch,while,do while,for,break,continue,goto等...

PHP的兩個特性導致waf繞過注入

1 hpp http引數汙染 http引數汙染指的是,在url中提交相同鍵值的兩個引數時,伺服器端一般會進行一些處理。比如apache就要以最後乙個引數為準,比如 user.php?id 111 id 222 如果輸出 get陣列,則id的值只會取222,即url上提交的多餘值覆蓋了前乙個值。2 乙...