關於 Register Globals開啟後會遇到的問題_PHP教程

來源:互聯網
上載者:User
我看了php手冊上面說全域變數是建議關閉的,即把regester_globales設定成off
而且手冊還舉了一個例子,說明如果不關掉會有什麼問題,例子如下,但是其中後面的解釋部分
的GET auth.php?authorized=1 不知道是什麼意思???希望大家幫幫我

錯誤使用 register_globals = on 的例子

// 當使用者合法的時候,賦值 $authorized = true
if (authenticated_user()) {
$authorized = true;
}

// 由於並沒有事先把 $authorized 初始化為 false,
// 當 register_globals 開啟時,可能通過GET auth.php?authorized=1 來定義該變數值
// 所以任何人都可以繞過身分識別驗證
if ($authorized) {
include "/highly/sensitive/data.php";
}
?>
當 register_globals = on 的時候,上面的代碼就會有危險了。如果是 off,$authorized 就不能通過如 URL 請求等方式來改變,這樣就好多了,儘管初始設定變數是一個良好的編程習慣。比如說,如果在上面的代碼執行之前加入 $authorized = false 的話,無論 register_globals 是 on 還是 off 都可以,因為使用者狀態被初始化為未經認證。


摘自 kaituozhe345

http://www.bkjia.com/PHPjc/478397.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478397.htmlTechArticle我看了php手冊上面說全域變數是建議關閉的,即把regester_globales設定成off 而且手冊還舉了一個例子,說明如果不關掉會有什麼問題,例子如...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.