Cara Mengaktifkan Register Global di PHP 5

chmood



Jika sudah memahami potensi keamanan dari register globals dan anda masih tetap ingin mengaktifkan register global, maka ada beberapa cara untuk menjalankan ini.

Berikut beberapa cara untuk mengaktifkan / enable register globals

Cara Pertama: Edit php.ini

Buka file php.ini lalu tambahkan baris berikut:

register_globals=1
Cara Kedua: edit .htaccess

Jika tidak punya akses ke server sehingga tidak bisa mengedit php.ini, maka cara yang lain adalah dengan mengedit file .htaccess pada folder aplikasi php berada. Tambahkan kode berikut:

php_flag register_globals 1
Cara ketiga: Coding

Jika menggunakan .htaccess masih belum dapat mengaktifkan register globals, maka langkah terakhir adalah dengan menggunakan script. Berikut kodenya:

Masukkan kode ini ke dalam file php:

<?php
include('register_globals.php');
register_globals();
lalu buat file register_globals.php berikut:

/**
* function to emulate the register_globals setting in PHP
* for all of those diehard fans of possibly harmful PHP settings
* @author Ruquay K Calloway
* @param string $order order in which to register the globals, e.g. 'egpcs' for default
* @link hxxp://www.php.net/manual/en/security.globals.php#82213
*/
function register_globals($order = 'egpcs')
{
// define a subroutine
if(!function_exists('register_global_array'))
{
function register_global_array(array $superglobal)
{
foreach($superglobal as $varname => $value)
{
global $varname;
$varname = $value;
}
}
}
$order = explode("\r\n", trim(chunk_split($order, 1)));
foreach($order as $k)
{
switch(strtolower($k))
{
case 'e': register_global_array($_ENV); break;
case 'g': register_global_array($_GET); break;
case 'p': register_global_array($_POST); break;
case 'c': register_global_array($_COOKIE); break;
case 's': register_global_array($_SERVER); break;
}
}
}
/**
* Undo register_globals
* @author Ruquay K Calloway
* @link hxxp://www.php.net/manual/en/security.globals.php#82213
*/
function unregister_globals() {
if (ini_get(register_globals)) {
$array = array('_REQUEST', '_SESSION', '_SERVER', '_ENV', '_FILES');
foreach ($array as $value) {
foreach ($GLOBALS[$value] as $key => $var) {
if ($var === $GLOBALS[$key]) {
unset($GLOBALS[$key]);
}
}
}
}
}
?>
<?php


Komentar