WEBアプリケーション開発の初期にCを使ってCGIプログラムを開発した記憶があれば、面倒なフォーム処理についても深く理解できるはずです。 PHP の register_globals 構成オプションがオンになっている場合、複雑な生のフォーム処理は存在せず、パブリック変数が自動的に作成されます。これにより、PHP プログラミングが簡単かつ便利になりますが、セキュリティ上のリスクも伴います。
実際、 register_globals は無害であり、脆弱性を生み出すことはなく、開発者は間違いを犯す必要があります。ただし、アプリケーションの開発およびデプロイ時に register_globals をオフにしなければならない主な理由は 2 つあります。
1 つ目は、セキュリティの脆弱性の数が増えることです
2 つ目は、データのソースが隠蔽されることです。これは、常にデータを追跡するという開発者の責任に反します。
この本のすべての例は、 register_globals がオフになっていて、$_GET などのスーパー パブリック配列を使用していることを前提としています。 そして 代わりに $_POST を使用してください。これらの配列の使用は、 register_globals をオンにしてプログラミングするのとほぼ同じくらい便利で、プログラムのセキュリティが向上するため、多少の不便さは価値があります。
ヒント
register_globals がオンになっている環境にデプロイされるアプリケーションを開発する必要がある場合は、すべての変数を初期化し、error_reporting を次のように設定することが重要です。 E_ALL(または E_ALL | E_STRICT) は、初期化されていない変数について警告します。 register_globals がオンになっている場合、初期化されていない変数を使用すると、ほぼ常にセキュリティ上の脆弱性が生じます。
上記は、PHP セキュリティ グローバル変数と登録の内容です。その他の関連内容については、PHP 中国語 Web サイト (www.php.cn) を参照してください。