Rumah >pembangunan bahagian belakang >tutorial php >Adakah Arahan register_globals PHP merupakan Risiko Keselamatan?

Adakah Arahan register_globals PHP merupakan Risiko Keselamatan?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 09:06:03528semak imbas

Is PHP's register_globals Directive a Security Risk?

Memahami Register_Globals dalam PHP

Arahan register_globals PHP menimbulkan persoalan tentang sifat dan fungsinya. Mari kita mendalaminya:

Apakah Register_Globals?

Register_globals ialah tetapan konfigurasi yang mencipta pembolehubah global secara automatik daripada elemen dalam tatasusunan $_REQUEST. Apabila menyerahkan borang, pembolehubah boleh diakses dalam skrip PHP dengan nama yang sepadan dengan atribut "nama" medan input.

Sebagai contoh, dengan register_globals didayakan dan borang menyerahkan medan nama pengguna, ungkapan ($username = == $_POST['nama pengguna']) akan dinilai kepada benar.

Keselamatan Implikasi

Register_globals menimbulkan risiko keselamatan yang ketara kerana ia membenarkan pengguna berniat jahat untuk memanipulasi pembolehubah tanpa pengesahan yang betul. Contohnya, dengan menambahkan "?authorized=1" pada URL, penyerang boleh memintas semakan kebenaran.

Perbezaan Kata Kunci Global

Tidak seperti register_globals, kata kunci global membenarkan pembolehubah yang diisytiharkan di luar skop fungsi untuk diakses di dalamnya. Pembolehubah global mesti diisytiharkan secara eksplisit menggunakan kata kunci global sebelum ia boleh digunakan.

Sebagai contoh, kod berikut menggunakan global $foo untuk mengakses pembolehubah yang diisytiharkan di luar fungsi buzz():

$foo = 'bar';

baz();

function baz()
{
    echo $foo; // PHP warns about using an uninitialized variable
}

buzz();

function buzz()
{
    global $foo; // Enables use of $foo in this scope
    echo $foo; // Prints 'bar' to screen
}

Atas ialah kandungan terperinci Adakah Arahan register_globals PHP merupakan Risiko Keselamatan?. 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