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

 */

functionregister_globals($order'egpcs')

{

    // define a subroutine

    if(!function_exists('register_global_array'))

    {

        functionregister_global_array(array$superglobal)

        {

            foreach($superglobalas$varname=> $value)

            {

                global$$varname;

                $$varname$value;

            }

        }

    }

   

    $orderexplode("\r\n", trim(chunk_split($order, 1)));

    foreach($orderas$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

 */

functionunregister_globals() {

    if(ini_get(register_globals)) {

        $arrayarray('_REQUEST''_SESSION''_SERVER''_ENV''_FILES');

        foreach($arrayas$value) {

            foreach($GLOBALS[$valueas$key=> $var) {

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

                    unset($GLOBALS[$key]);

                }

            }

        }

    }

}

?>

Leave a Reply

Your email address will not be published.