上篇文章為大家介紹了《PHP中如何進行檔案上傳?我們需要注意什麼? 》,本文繼續跟大家介紹PHP常用函數的漏洞有哪些?有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
PHP中常用函數的漏洞:
extract變數覆寫漏洞
extract函數:將變數從陣列匯入目前符號表。在某些mvc框架中會有它的蹤影
extract函數的定義: int extract(array,extract_ rules,prefix)
#extract0函數將檢查每個鍵名是否為合法的變數名,同時也檢查和符號表中已存在的變數名稱是否衝突。對不合法和衝突的鍵名的處理將根據此參數決定。
extract_rules :
#EXTR_ OVERWRITE -預設。如果有衝突,則覆蓋已有的變數。
EXTR_ SKIP -如果有衝突,不覆寫已有的變數。
EXTR_ PREFIX. SAME -如果有衝突.在變數名稱前加上前綴prefix.
EXTR_ PREFIX. ALL -給所有變數名加上前綴prefix.
EXTR_ PREFIX. INVALID -僅在不合法或數字變數名稱前加上前綴prefix.
EXTR_ IF. EXISTS -僅在當前符號表中已有同名變數時.覆寫它們的值。其它的都不處理。
EXTR_PREFIX_IF _EXISTS -僅在當前符號表中已有同名變數時.建立附加了前綴的變數名稱其它的都不處理。
EXTR_REFS -將變數作為引用提取。導入的變數仍然引用了數組參數的值。
我們以程式碼為例演示extract函數對目前覆蓋表的影響:
我們先建立一個文件,例如目前覆蓋表中有一個name,然後我們輸出這個變量,
<?php $name = '好久不见'; echo $name; ?>
程式碼結果如下:
#然後我們使用extract函數,然後我們定義一個數組,默然情況下是會覆蓋當前覆蓋表中的變量,也意味著我們剛剛寫的《好久不見》會被覆蓋掉,程式碼如下:
<?php $name = '好久不见'; extract(array('name'=>'再见')); echo $name; ?>
程式碼結果如下:
推薦學習:《PHP影片教學》
以上是PHP常用函數的漏洞有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!