Blog

Home   /   blog   /   Cara Mengaktifkan Register Global di PHP 5

Cara Mengaktifkan Register Global di PHP 5

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:

<?php

/**

 * 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[$valueas $key => $var) {

                if ($var === $GLOBALS[$key]) {

                    unset($GLOBALS[$key]);

                }

            }

        }

    }

}

?>

Leave a Reply

Your email address will not be published. Required fields are marked *