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

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

編輯:關於PHP編程

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

錯誤使用 register_globals = on 的例子

<?php
// 當用戶合法的時候,賦值 $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

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