REGISTER_GLOBALS の危険性
REGISTER_GLOBALS は、すべての GET 変数と POST 変数を PHP スクリプト内でグローバル変数として使用できるようにする PHP 設定です。この機能は便利に見えるかもしれませんが、潜在的なセキュリティ脆弱性やコーディング方法のため、使用は強くお勧めできません。
REGISTER_GLOBALS はなぜ悪いのですか?
REGISTER_GLOBALS の主な問題は次のとおりです。悪用される可能性があるという点で。 GET または POST 変数が宣言されていない変数 (PHP では許可されています) として誤ってアクセスされると、悪意のあるコードが実行される可能性があります。 PHP はユーザー入力が信頼できない Web 開発によく使用されるため、これは特に懸念事項です。
脆弱性の例
次の PHP コードを考えてみましょう:
if ($debug) {
echo "query: $query\n";
}
REGISTER_GLOBALS を有効にすると、攻撃者はスクリプトの動作を操作するリクエストを通じて $query 変数を簡単に挿入できます。これにより、機密情報の漏洩、不正なファイル アクセス、さらにはリモート コードの実行につながる可能性があります。
コーディングのベスト プラクティス
PHP コードはエンジニアリングされる必要があることに注意することが重要です。宣言されていない変数へのアクセスを避けるため。適切に記述されたコードは、すべての変数を適切に宣言して初期化するため、便宜上 REGISTER_GLOBALS に依存しないでください。
REGISTER_GLOBALS は簡単で汚いスクリプトに使用できますが、通常は運用コードでは使用しないでください。 REGISTER_GLOBALS を無効にし、クリーンなコーディング手法を採用することで、開発者は PHP アプリケーションのセキュリティと信頼性を大幅に強化できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3