ホームページ >バックエンド開発 >PHPチュートリアル >グローバル登録をオンにした後に発生する問題について_PHP チュートリアル
PHPマニュアルを読んだところ、グローバル変数をオフにすること、つまりregister_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) {
"/highly/sensitive/data.php" を含めます;
}
?>
register_globals = on の場合、上記のコードは危険です。オフの場合、$authorized は URL リクエストなどを介して変更できません。変数の初期化はプログラミングの良い習慣ですが、そのほうがはるかに優れています。たとえば、上記のコードを実行する前に $authorized = false を追加した場合、ユーザーのステータスは未認証として初期化されるため、register_globals がオンかオフかは関係ありません。