首頁 >後端開發 >php教程 >PHP 中哪些 $_SERVER 變數可以安全使用?

PHP 中哪些 $_SERVER 變數可以安全使用?

DDD
DDD原創
2024-11-11 00:55:03518瀏覽

Which $_SERVER Variables Are Safe to Use in PHP?

識別安全的 $_SERVER 變量

攻擊者可以利用用戶可以控制的變量,使它們不安全或「被污染」。本文旨在提供 $_SERVER 變數及其各自安全等級的完整清單。

伺服器控制

這些變數由伺服器設定,不受使用者影響輸入:

  • 'GATEW AY_INTERFACE'
  • 'SERVER_ADDR'
  • 'SERVER_SOFTWARE'
  • 'DOCUMENT_ROOT'
  • 'SERVER_ADMIN'
  • 'SERVER_SIGNATURE'

部分伺服器控制

這些變數取決於客戶端的要求,但有效值有限,使其可靠:

  • 'HTTPS'
  • 'REQUEST_TIME'
  • 'REMOTE_ADDR'(透過 TCP/IP驗證握手)
  • 'REMOTE_HOST'(可能是欺騙性的)
  • 'REMOTE_PORT'
  • 'SERVER_PROTOCOL'
  • 'SERVER_PROTOCOL'
  • 'HT伺服器)

  • 'SERVER_NAME'
  • 'SCRIPT_FILENAME'
  • 'SERVER_PORT'
'SCRIPT_NAME '

完全任意的使用者受控

    這些變數容易受到使用者操縱:
  • 'argv', 'argc'
  • 'REQUEST_METHOD'
  • 'QUERY_STRING'
  • 'HTTP_ACCEPT'
  • 'HTTP_ACCEPT_CH ARSET'
  • 'HTTP_ACCEPT_ENCODING'
  • 'HTTP_ACCEPT_LANGUAGE'
  • 'HTTP_CONNECTION'
  • 'HTTP_REFERER'
  • 'HTTP_USER_AGENT'
  • 'AUTH_TYPE'
  • 'PHP_AUTH_DIGEST'
  • 'PHP_AUTH_PW'
  • 'PATH_INFO'
  • 'ORIG_PATH_INFO'
  • 'REREQUEST_URI' (可能包含受污染的數據)
  • 'PHP_SELF'(可能包含受污染的數據)
  • 'PATH_TRANSLATED'
  • 任何其他'HTTP_' 值

環境變數

環境變數的安全性取決於其來源。它們的範圍可以從完全伺服器控製到完全用戶控制。

以上是PHP 中哪些 $_SERVER 變數可以安全使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn