Adakah Arahan register_globals PHP merupakan Risiko Keselamatan?

Patricia Arquette
Lepaskan: 2024-11-15 09:06:03
asal
477 orang telah melayarinya

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
}
Salin selepas log masuk

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!

sumber:php.cn
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