我看了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 都可以,因為用戶狀態被初始化為未經認證。