php反序列化

2021-10-24 15:02:58 字數 1364 閱讀 2890

php序列化:將物件或變數轉換成字串。

php反序列化:是將字串轉換成原來的變數。

serialize()

serialize() 函式用於序列化物件或陣列,並返回乙個字串。

serialize() 函式序列化物件後,可以很方便的將它傳遞給其他需要它的地方,且其型別和結構不會改變。

<?php 

$sites

=array

('google'

,'runoob'

,'facebook');

$serialized_data

=serialize

($sites);

echo

$serialized_data

.php_eol

;?>

/*執行結果

a:3:

*/

unserialize()函式用於將通過 serialize() 函式序列化後的物件或陣列進行反序列化,並返回原始的物件。

<?php 

$str

='a:3'

;$unserialized_data

=unserialize

($str);

print_r

($unserialized_data);

?>

/*輸出結果為:

array

( [0] => google

[1] => runoob

[2] => facebook

)*/

__wakeup()函式,經常用在反序列化操作中,是使用unserialize()時被呼叫

__destruct()物件被銷毀時觸發

__call()在物件上下文中呼叫不可訪問的方法時觸發

__sleep()函式使用serialize時觸發觸發事件:物件被序列化之前

作用:返回需要被序列化儲存的成員屬性,刪減不必要

返回:array 需要被序列化儲存的成員屬性陣列

unserialize3

開啟網頁是

<?php 

class

xctf}$a

=new

xctf()

;echo

(serialize($a

));?>

/*輸出結果為:

o:4:"xctf":1:

*/

然後在網頁中輸入可以得到flag.

?code=o:4:

"xctf":2

:

PHP反序列化

php反序列化漏洞 一 序列化定義 序列化 serialization 在電腦科學的資料處理中,是指將資料結構或物件狀態轉換成可取用格式 例如存成檔案,存於緩衝,或經由網路中傳送 以留待後續在相同或另一台計算機環境中,能恢復原先狀態的過程。概念很容易理解,其實就是將資料轉化成一種可逆的資料結構,自然...

PHP反序列化

類定義是以關鍵字class開頭,後跟類的名稱。類的主體是包含在一對花括號中,裡面有類的屬性與方法的定義。類屬性存在於資料段,類方法存在於 段,對於乙個類來說,類的方法不占用類的空間,佔空間的只有類的屬性。要建立乙個類的例項,必須使用new關鍵字。當建立新物件時該物件總是被賦值,除非該物件定義了建構函...

php序列化與反序列化

php的序列化 反序列化對與一些大檔案的壓縮操作,讀寫操作十分有用。乙個簡單的序列化案例 同時用到了序列化與反序列化函式,二者在被呼叫時會分別自己呼叫對應的函式,sleep 以及 wakeup.sleep和 wakeup練習題 故事 乙個果農生產了很多水果種類,於是需要把乙個買家指定的種類寄給他,生...