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

Sejauh manakah Pembolehubah $_SERVER dalam Keselamatan PHP?

Barbara Streisand
Lepaskan: 2024-11-12 16:03:02
asal
926 orang telah melayarinya

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 Laman Web ini
    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
    Artikel terbaru oleh pengarang
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan