ホームページ  >  記事  >  バックエンド開発  >  PHP で安全に使用できる $_SERVER 変数はどれですか?

PHP で安全に使用できる $_SERVER 変数はどれですか?

DDD
DDDオリジナル
2024-11-11 00:55:03467ブラウズ

Which $_SERVER Variables Are Safe to Use in PHP?

安全な $_SERVER 変数の特定

攻撃者は、ユーザーが制御できる変数を悪用して、変数を安全でないか「汚染」する可能性があります。この記事は、$_SERVER 変数とそれぞれの安全性レベルの包括的なリストを提供することを目的としています。

サーバー制御

これらの変数はサーバーによって設定され、ユーザーの影響を受けません。 input:

  • 'GATEWAY_INTERFACE'
  • 'SERVER_ADDR'
  • 'SERVER_SOFTWARE'
  • 'DOCUMENT_ROOT'
  • 'SERVER_ADMIN'
  • 'SERVER_SIGNATURE'

部分的にサーバー制御

これらの変数はクライアントのリクエストに依存しますが、有効な値が限られているため、信頼性が高くなります。

  • 'HTTPS'
  • 'REQUEST_TIME'
  • 'REMOTE_ADDR' (TCP/IP ハンドシェイクによって検証される)
  • 'REMOTE_HOST' (なりすましの可能性がある) )
  • 'REMOTE_PORT'
  • 'SERVER_PROTOCOL'
  • 'HTTP_HOST' (サーバーによって処理されない場合)
  • 'SERVER_NAME'
  • 'SCRIPT_FILENAME'
  • 'SERVER_PORT'
  • 'SCRIPT_NAME'

完全に任意のユーザー制御

これらの変数は次のとおりですユーザー操作に対して脆弱:

  • 'argv'、'argc'
  • 'REQUEST_METHOD'
  • 'QUERY_STRING'
  • 'HTTP_ACCEPT'
  • 'HTTP_ACCEPT_CHARSET'
  • 'HTTP_ACCEPT_ENCODING'
  • 'HTTP_ACCEPT_LANGUAGE'
  • 'HTTP_CONNECTION'
  • 'HTTP_REFERER'
  • ' HTTP_USER_AGENT'
  • 'AUTH_TYPE'
  • 'PHP_AUTH_DIGEST'
  • 'PHP_AUTH_USER'
  • 'PHP_AUTH_PW'
  • 'PATH_INFO'
  • 'ORIG_PATH_INFO'
  • 'REQUEST_URI' (汚染されたデータが含まれる可能性があります)
  • 'PHP_SELF' (汚染されたデータが含まれる可能性があります)
  • 'PATH_TRANSLATED'
  • その他の 'HTTP_' 値

環境変数

環境変数の安全性は、そのソースによって異なります。完全にサーバー制御のものから完全にユーザー制御のものまで多岐にわたります。

以上がPHP で安全に使用できる $_SERVER 変数はどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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