Rumah > pembangunan bahagian belakang > tutorial php > Mengapa register_globals Dilumpuhkan dalam PHP?

Mengapa register_globals Dilumpuhkan dalam PHP?

Linda Hamilton
Lepaskan: 2024-11-15 10:33:02
asal
724 orang telah melayarinya

Why Was register_globals Disabled in PHP?

Mendaftar Global dalam PHP

Pengenalan

Dalam PHP, register_globals ialah tetapan dalaman yang mendaftarkan pembolehubah secara automatik daripada tatasusunan superglobal $_REQUEST. Walau bagaimanapun, ia telah dilumpuhkan secara lalai disebabkan oleh kebimbangan keselamatan.

Contoh Register Globals

Apabila register_globals didayakan, nilai medan input daripada permintaan POST atau GET boleh diakses terus sebagai pembolehubah yang sama nama sebagai medan input. Contohnya:

<form method="post">
  <input type="text" name="username">
  <input type="submit">
</form>
Salin selepas log masuk

Dengan register_globals didayakan, kod PHP berikut akan dinilai kepada benar pada permulaan skrip:

$username === $_POST['username'];
Salin selepas log masuk

Kerentanan Keselamatan

Register_globals diperkenalkan kelemahan keselamatan yang serius. Sebagai contoh, penyerang boleh menambahkan parameter rentetan pertanyaan pada URL, seperti "?authorized=1", untuk memintas semakan kebenaran.

Kata Kunci Global

Tidak seperti register_globals, kata kunci global mempunyai tujuan yang berbeza. Ia digunakan untuk mengakses pembolehubah dari skop yang berbeza dalam fungsi. Contohnya:

$foo = 'bar';

function baz() {
  // Attempting to use $foo here will trigger a warning
  echo $foo;
}

function buzz() {
  global $foo;  // Declares that $foo is a global variable
  echo $foo;    // Prints 'bar'
}
Salin selepas log masuk

Kesimpulan

Walaupun register_globals tidak lagi digunakan kerana risiko keselamatannya, kata kunci global kekal sebagai alat yang berguna untuk mengakses pembolehubah dalam skop yang berbeza.

Atas ialah kandungan terperinci Mengapa register_globals Dilumpuhkan dalam 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan