ホームページ >バックエンド開発 >PHPチュートリアル >PHP セキュリティにおける $_SERVER 変数の信頼性はどの程度ですか?

PHP セキュリティにおける $_SERVER 変数の信頼性はどの程度ですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-12 16:03:02866ブラウズ

How Reliable Are $_SERVER Variables in PHP Security?

$_SERVER 変数のセキュリティの評価

HTTP リクエスト ヘッダーには、多くの場合、ユーザーが制御できる情報が含まれています。その結果、多くの $_SERVER 変数が悪意のある入力によって汚染され、攻撃源となる可能性があります。

制御された値について

「SERVER_ADDR」などのサーバー制御変数

部分的にサーバー制御される変数はリクエストに依存し、有効な値が制限されているため、信頼性が高くなります。例には、「REMOTE_ADDR」と「REQUEST_TIME」が含まれます。

任意のユーザー制御値

対照的に、任意のユーザー制御値には、クライアントによって送信された任意の入力を含めることができます。潜在的に悪意のあるコンテンツが含まれます。 「HTTP_USER_AGENT」や「PHP_SELF」などの変数がこのカテゴリに分類されます。

信頼性の評価

$_SERVER 変数の信頼性の判断は、特定の使用法とサーバー構成によって異なります。 。例:

  • 'REMOTE_ADDR' は一般に信頼できますが、DNS 攻撃でなりすましされる可能性があります。
  • 'HTTP_HOST' は、サーバーが無効なホスト ヘッダーを持つリクエストを拒否した場合は安全であると考えられます。
  • 'REQUEST_METHOD' は、サーバーが許可されたメソッドを制限している場合に信頼できます。

$_SERVER 変数の分類

    < li>サーバー制御:

    • 'GATEWAY_INTERFACE'

    • 'SERVER_ADDR'

    • 'SERVER_SOFTWARE'

    • 'DOCUMENT_ROOT'

    • 'SERVER_ADMIN'

    • 'SERVER_SIGNATURE'


  • 部分的にサーバー制御:
  • 'HTTPS'

  • 'REQUEST_TIME'

  • 'REMOTE_ADDR'

  • < ;li>'REMOTE_HOST'
  • 'REMOTE_PORT'

  • 'SERVER_PROTOCOL'

  • 'HTTP_HOST '

  • 'SERVER_NAME'

  • 'SCRIPT_FILENAME'

  • 'SERVER_PORT'
  • 'SCRIPT_NAME'


  • 完全に任意のユーザー制御値:

    • 'argv'、'argc'

    • < li>'REQUEST_METHOD'
    • 'QUERY_STRING'

    • 'HTTP_ACCEPT'

    • 'HTTP_ACCEPT_CHARSET'

    • 'HTTP_ACCEPT_ENCODING'

    • 'HTTP_ACCEPT_LANGUAGE'

    • 'HTTP_CONNECTION'

    • 'HTTP_REFERER'

    • 'HTTP_USER_AGENT'

    • 'AUTH_TYPE'

    • < li>'PHP_AUTH_DIGEST'
    • 'PHP_AUTH_USER'

    • 'PHP_AUTH_PW'

    • 'PATH_INFO'

    • 'ORIG_PATH_INFO'

    • 'REQUEST_URI'

    • 'PHP_SELF'

    • 'PATH_TRANSLATED'

    • その他の 'HTTP_' 値



  • $_SERVER 変数を信頼する前に、コンテキストと潜在的な結果を考慮してください。

    以上がPHP セキュリティにおける $_SERVER 変数の信頼性はどの程度ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。