PHP 規範程式設計 register_globals 配置項

alansleep發表於2013-02-01

register_globals
現在的Php版本的配置預設都是off了.這個配置項是做什麼的呢?

作用:
將使用者提交的GPC資料(Get,Post,Cookies資料)自動註冊為全域性變數.比如form 裡的input name ="name",value="epics.cn";提交到伺服器後,可以直接在處理的頁面裡$name得到該變數.嗯哈,很方便編寫程式碼啦.不過,如果你開啟這個設定,你的程式將沒有安全性了.

危險:
看下下面的登入程式碼:

<?php  
    if(checkadmin())
        $badmin = true;

    if($badmin)
    {
        adminjob();
    }
?>

如果你的register_globals是on的話,對方可以簡單的在的處理的頁面地址後加上一個?badmin=1則通過了這個檢查了. 當然你也可以在if(checkadmin())後新增上else $badmin = false;分支,但是無論如何,register_globals都不應該開啟.

我的部落格

相關文章