REGISTER_GLOBALS: PHP のセキュリティ上の危険
REGISTER_GLOBALS は、かつて PHP の物議を醸した機能であり、広範な非難を引き起こしました。その悪名高い評判は、それがもたらした固有のセキュリティ リスクに由来しています。
それで、REGISTER_GLOBALS の問題は何ですか?
REGISTER_GLOBALS は、すべての GET および POST リクエスト パラメータのグローバル変数を自動的に作成します。 、スクリプト内のどこからでもアクセスできるようになります。 PHP では、宣言されていない変数へのアクセスはエラーではなく単なる警告であるため、これは重大な脅威となります。
次の仮想コードを考えてみましょう:
<code class="php">// $debug = true; if ($debug) { echo "query: $query\n"; }</code>
REGISTER_GLOBALS が有効になっていない場合、宣言されていない $query にアクセスします。変数を指定すると警告またはエラーが発生し、開発者は変数を明示的に定義するように求められます。ただし、REGISTER_GLOBALS をオンにすると、宣言されていない $query がグローバル変数として引き続き利用できるため、攻撃者がこの宣言されていないパラメータを悪用する潜在的な手段が生まれます。
本質的に悪いものではありませんが、REGISTER_GLOBALS は、一般的なセキュリティ上の欠陥を悪化させる可能性があります。品質が不十分なことが多いため、多くの PHP スクリプトが使用されています。そのため、セキュリティを強化するために REGISTER_GLOBALS を無効にすることが一般的に推奨されます。
以上がREGISTER_GLOBALS が PHP のセキュリティ上の危険となるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。