#如果您還能記得早期WEB應用開發中使用C開發CGI程式的話,一定會對繁瑣的表單處理深有體會。當PHP的register_globals設定選項開啟時,複雜的原始表單處理已不復存在,公用變數會自動建立。它讓PHP編程變得容易和方便,但同時也帶來了安全隱患。
事實上,register_globals是無辜的,它並不會產生漏洞,同時還要開發者犯錯才行。可是,有兩個主要原因導致了您必須在開發和佈署應用時關閉register_globals:
第一,它會增加安全漏洞的數量;
第二,隱藏了資料的來源,與開發者需要隨時追蹤資料的責任相違背。
本書中所有例子都假定register_globals已關閉,用超級公用數組如$_GET 和 $_POST取而代之。使用這些陣列幾乎與register_globals開啟時的程式設計方法同樣方便,而其中的些許不便是值得的,因為它提高了程式的安全性。
小提示
如果您必須要開發一個在register_globals開啟的環境中佈署的應用時,很重要的一點是您必須要初始化所有變數並且把error_reporting 設為 E_ALL(或 E_ALL | E_STRICT)以對未初始化變數進行警告。當register_globals開啟時,任何使用未初始化變數的行為幾乎都意味著安全漏洞。
以上就是PHP安全-全域變數與註冊的內容,更多相關內容請關注PHP中文網(www.php.cn)!