「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > REGISTER_GLOBALS が PHP のセキュリティ上の危険となるのはなぜですか?

REGISTER_GLOBALS が PHP のセキュリティ上の危険となるのはなぜですか?

2024 年 11 月 8 日に公開
ブラウズ:519

Why is REGISTER_GLOBALS a security hazard in PHP?

REGISTER_GLOBALS: PHP のセキュリティ上の危険

REGISTER_GLOBALS は、かつて PHP の物議を醸した機能であり、広範な非難を引き起こしました。その悪名高い評判は、それがもたらした固有のセキュリティ リスクに由来しています。

それでは、REGISTER_GLOBALS の問題は何ですか?

REGISTER_GLOBALS は、すべての GET および POST リクエスト パラメータのグローバル変数を自動的に作成します。 、スクリプト内のどこからでもアクセスできるようになります。 PHP では、宣言されていない変数へのアクセスはエラーではなく単なる警告であるため、これは重大な脅威となります。

次の仮想コードを考えてみましょう。

// $debug = true;
if ($debug) {
    echo "query: $query\n";
}

REGISTER_GLOBALS が有効になっていない場合、宣言されていない $query 変数にアクセスすると警告またはエラーが発生し、開発者に変数を明示的に定義するよう求められます。ただし、REGISTER_GLOBALS をオンにすると、宣言されていない $query がグローバル変数として引き続き利用できるため、攻撃者がこの宣言されていないパラメータを悪用する潜在的な経路が作成されます。

本質的に悪いわけではありませんが、REGISTER_GLOBALS は、一般的なセキュリティ上の欠陥を悪化させる可能性があります。品質が不十分なことが多いため、多くの PHP スクリプトが使用されています。そのため、セキュリティを強化するために REGISTER_GLOBALS を無効にすることが一般的に推奨されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3