程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於register_globals設置的問題

關於register_globals設置的問題

編輯:關於PHP編程

基於各種各樣的理由,PHP 的設置需要依賴於 register_globals 參數打開,但是也成為安全的重要隱患,請看下面的一段代碼: 遠程用戶可以簡單的傳遞 authenticated 作為表單變量,即使 authenticate_user() 函數返回 false,$authenticated 還是會設置成 true。這是一個簡單的例子,你或許會說,我的程序不會這樣來寫。 而實際上,在稍微復雜一些的應用裡面,這個機制就會成為重大的漏洞。 因此,新版本的 PHP ,我們建議用戶不要采用這個變量來控制應用,雖然我們沒有打算要在不久的將來刪除。 為了幫助用戶建立 register_globals 設置為 off 的應用,增加了一些變量來代替舊的,下面是7 個新的數組: $_GET - 包含了通過 GET 發送的表單變量 $_POST - 包含了通過 POST 發送的表單變量 $_COOKIE - 包含了 HTTP cookie 變量 $_SERVER - 包含服務器端變量 (例如:REMOTE_ADDR) $_ENV - 包含環境變量 $_REQUEST - GET 變量,POST 變量和 Cookie 變量的混合,通過用戶而來而不能信任的變量。 $_SESSION - 包含通過會話模塊注冊的 HTTP 變量 這些變量,在任何范圍內,都自動設置為全局變量,可以在任何地方調用,而不需要加 global 關鍵字。 例如: function example1() { print $_GET["name"]; // 沒有必要寫成:global $_GET; } 另外一個值得一提的小竅門是在 $_SESSION 數組中增加一個記錄能自動作為會話變量注冊,就像你調用了 session_register() 函數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved