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
686 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!

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