Rumah  >  Artikel  >  php教程  >  Kongsi pemahaman anda tentang nilai register_globals PHP on dan off_php asas

Kongsi pemahaman anda tentang nilai register_globals PHP on dan off_php asas

PHP中文网
PHP中文网asal
2016-05-16 09:00:111539semak imbas

Kongsi pemahaman anda tentang nilai PHP register_globals ​​​​on dan off_php asas:

Nilai register_globals boleh ditetapkan kepada: Hidup atau Mati Mari kita berikan sekeping kod untuk menggambarkan mereka masing-masing.

Kod:

<form name="frmTest" id="frmTest" action="URL">
<input type="text" 
name="user_name" id="user_name">
<input type="password" 
name="user_pass" id="user_pass">
<input type="submit" 
value="login">
</form>



Apabila register_globals=Off, program seterusnya harus menggunakan $_GET['user_name' ] dan $_GET[ 'user_pass'] untuk menerima nilai yang diluluskan. (Nota: Apabila atribut kaedah ff9c23ada1bcecdd1a0fb5d5a0f18437 ialah siaran, anda harus menggunakan $_POST['user_name'] dan $_POST['user_pass'])

Apabila register_globals=On, atur cara seterusnya boleh Gunakan $user_name dan $user_pass terus untuk menerima nilai.

Seperti namanya, register_globals bermaksud mendaftar sebagai pembolehubah global, jadi apabila ia Hidup, nilai yang diluluskan akan didaftarkan terus sebagai pembolehubah global dan digunakan secara langsung, dan apabila ia Mati, kita perlu pergi ke tatasusunan tertentu Pergi dapatkannya. Oleh itu, rakan-rakan yang menghadapi masalah di atas kerana tidak boleh mendapatkan nilai hendaklah terlebih dahulu menyemak sama ada tetapan register_globals anda sepadan dengan kaedah anda untuk mendapatkan nilai tersebut. (Untuk menyemak, anda boleh menggunakan fungsi phpinfo() atau semak terus php.ini)

Mari kita lihat apa yang salah di sini?

Lihat skrip PHP berikut, yang digunakan untuk membenarkan akses ke halaman Web apabila nama pengguna dan kata laluan yang dimasukkan adalah betul:

Kodnya adalah seperti berikut:

<?php
// 检查用户名及口令
if ($username == &#39;kevin&#39; and $password == 
&#39;secret&#39;)
$authorized = true;
?>
<?php if (!$authorized): 
?>
<!-- 未授权的用户将在这里给予提示 -->
<p>Please enter your username 
and password:</p>
<form action="<?=$PHP_SELF?>" 
method="POST">
<p>Username: <input type="text" name="username" 
/><br />
Password: <input type="password" name="password" 
/><br />
<input type="submit" 
/></p>
</form>
<?php else: ?>
<!-- 有安全要求的HTML内容 
-->
<?php endif; ?>

Masalah dengan kod di atas ialah anda boleh mendapatkan akses dengan mudah tanpa memberikan nama pengguna dan kata laluan yang betul. Cuma tambahkan ?authorized=1 di hujung bar alamat penyemak imbas anda. Oleh kerana PHP secara automatik mencipta pembolehubah untuk setiap nilai yang diserahkan -- sama ada daripada penyerahan borang, rentetan pertanyaan URL atau kuki -- ini akan menetapkan $authorized kepada 1, jadi pengguna yang tidak dibenarkan boleh Melangkaui sekatan keselamatan.

Di atas adalah untuk berkongsi pemahaman tentang nilai PHP register_globals ​​​​on dan off_php kandungan asas Untuk kandungan yang lebih berkaitan, sila perhatikan laman web PHP Cina (www.php.cn)!


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