Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sejauh manakah Pembolehubah $_SERVER dalam Keselamatan PHP?

Sejauh manakah Pembolehubah $_SERVER dalam Keselamatan PHP?

Barbara Streisand
Barbara Streisandasal
2024-11-12 16:03:02811semak imbas

How Reliable Are $_SERVER Variables in PHP Security?

Menilai Keselamatan Pembolehubah $_SERVER

Pengepala permintaan HTTP selalunya mengandungi maklumat yang boleh dikawal oleh pengguna. Akibatnya, banyak pembolehubah $_SERVER boleh dicemari oleh input berniat jahat dan menjadi sumber serangan.

Memahami Nilai Terkawal

Pembolehubah dikawal pelayan, seperti 'SERVER_ADDR' dan 'SERVER_SOFTWARE', ditetapkan oleh konfigurasi pelayan dan sememangnya selamat.

Sebahagian pembolehubah dikawal pelayan bergantung pada permintaan dan mempunyai nilai sah yang terhad, menjadikannya boleh dipercayai. Contohnya termasuk 'REMOTE_ADDR' dan 'REQUEST_TIME'.

Nilai Kawalan Pengguna Sewenang-wenang

Sebaliknya, nilai dikawal pengguna sewenang-wenangnya boleh mengandungi sebarang input yang dihantar oleh klien, termasuk kandungan yang berpotensi berniat jahat. Pembolehubah seperti 'HTTP_USER_AGENT' dan 'PHP_SELF' termasuk dalam kategori ini.

Menilai Kebolehpercayaan

Menentukan kebolehpercayaan pembolehubah $_SERVER bergantung pada penggunaan khusus dan konfigurasi pelayan . Contohnya:

  • 'REMOTE_ADDR' secara amnya boleh dipercayai, tetapi boleh ditipu dalam serangan DNS.
  • 'HTTP_HOST' boleh dianggap selamat jika pelayan menolak permintaan dengan pengepala hos yang tidak sah.
  • 'REQUEST_METHOD' boleh dipercayai jika pelayan mengehadkan kaedah yang dibenarkan.

Pengkategorian $_SERVER Pembolehubah

    < li>Pelayan dikawal:

    • 'GATEWAY_INTERFACE'

    • 'SERVER_ADDR'
    • >
    • 'SERVER_SOFTWARE'

    • 'DOCUMENT_ROOT'

    • 'SERVER_ADMIN'

    • < 'SERVER_SIGNATURE'


  • Sebahagian pelayan dikawal:

  • 'HTTPS'

  • 'REQUEST_TIME'

  • 'REMOTE_ADDR'

  • ;li>'REMOTE_HOST'
  • 'REMOTE_PORT'

  • 'SERVER_PROTOCOL'

  • '

  • 'SERVER_NAME'

  • 'SCRIPT_FILENAME'

  • 'SERVER_PORT'
  • 'SCRIPT_NAME'



  • Nilai kawalan pengguna sepenuhnya sewenang-wenangnya:

    • 'argv', 'argc'

    • 'REQUEST_METHOD'

    • 'QUERY_STRING'
    • 'HTTP_ACCEPT'

    • 'HTTP_ACCEPT_CHARSET'

    • 'HTTP_ACCEPT_ENCODING'

    • 'HTTP_ACCEPT_LANGUAGE'


    • 'HTTP_REFERER'

    • 'HTTP_USER_ EJEN'

    • 'AUTH_TYPE'

    • 'PHP_AUTH_DIGEST'

    • 'PHP_AUTH_USER'

    • 'PHP_AUTH_PW'

    • 'PAT H_INFO'

    • 'ORIG_PATH_INFO'

    • 'REQUEST_URI'
    • 'PHP_SELF'

    • 'PATH_TRANSLATED'

    • Mana-mana nilai 'HTTP_' lain



  • Pertimbangkan konteks dan kemungkinan akibat sebelum mempercayai mana-mana $_SERVER berubah-ubah.

    Atas ialah kandungan terperinci Sejauh manakah Pembolehubah $_SERVER dalam Keselamatan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn