Cara Cepat Mengenkripsi URL di Codeigniter

Meng-enkripsi URL di Codeigniter 

Proses mengirim data ID primary key atau id di URL sering KITA lakukan sebagai para developer website terutama di Codeigniter. 


Cara Cepat Mengenkripsi URL di Codeigniter
Cara Cepat Mengenkripsi URL di Codeigniter 

ID primary key atau id di URL merupakan data vital. Karena ID primary key atau id di URL mewakili data tertentu dan setiap data memeiliki ID yang uniqe atau tidak sama antara satu dengan lainnya.
Contohnya:

www.mysite.com/edit_data/1

Pada url diatas merupakan contoh penerapan ID pada url, ID primary key dapat diketahui secara jelas. Tentunya hal ini cukup berbahaya dan riskan karena ID tersebut dapat dimanipulasi dan disalahgunakan. Untuk mencegah dan menanggulangi hal tersebut, kita dapat melakukan proteksi menjadi seperti dibawah ini supaya lebih aman.

www.mysite.com/edit_data/Umhxc2ZDeHlpc1JpYWNIUVdzNG1sZz99


Terus bagaimana cara mengatasi hal ini ?

Cara Mengenkripsi URL di CodeIgniter


Sebetulnya CodeIgniter sudah mempunyai library untuk melakukan enkripsi, namun enkripsi yang digunakan kurang efisien jika digunakan untuk mengenkripsi ID pada URL.

langkah pertama, copas kode dibawah ini dan simpan di folder /application/helper/ dengan nama security.ini

Kodenya

  
[security] 
encryption_key=1111111111111111 ;16 digits 
iv=2456378494765431 ;16 digits 
encryption_mechanism=aes-256-cbc
Note : * Ganti nilai iv sesuai dengan keinginan namun harus berjumalh 16 digit

Kemudian buat file security _helper.php pada folder /application/helper/ dan isikan dengan kode dibawah ini

Kodenya

  
<?php if (!defined("BASEPATH")) exit("No direct script access allowed");
 function encrypt_url($string) {
     $output = false;
     /*
     * read security.ini file & get encryption_key | iv | encryption_mechanism value for generating encryption code
     */        
     $security       = parse_ini_file("security.ini");
     $secret_key     = $security["encryption_key"];
     $secret_iv      = $security["iv"];
     $encrypt_method = $security["encryption_mechanism"];
     // hash
     $key    = hash("sha256", $secret_key);
     // iv – encrypt method AES-256-CBC expects 16 bytes – else you will get a warning
     $iv     = substr(hash("sha256", $secret_iv), 0, 16);
     //do the encryption given text/string/number
     $result = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
     $output = base64_encode($result);
     return $output;
 }
 function decrypt_url($string) {
     $output = false;
     /*
     * read security.ini file & get encryption_key | iv | encryption_mechanism value for generating encryption code
     */
     $security       = parse_ini_file("security.ini");
     $secret_key     = $security["encryption_key"];
     $secret_iv      = $security["iv"];
     $encrypt_method = $security["encryption_mechanism"];
     // hash
     $key    = hash("sha256", $secret_key);
     // iv – encrypt method AES-256-CBC expects 16 bytes – else you will get a warning
     $iv = substr(hash("sha256", $secret_iv), 0, 16);
     //do the decryption given text/string/number
     $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
     return $output;
 }
Lalu edit file autoload.php yang terdapat di /application/config/ , pada $autoload[‘helper’] tambahkan security

Kodenya

  
 $autoload['helper']= array('security');

Untuk melakukan enkripsi urlnya, tinggal memanggil encrypt_url($id);

Contoh Kodenya:

  
 <a href='<?=base_url("user/edit/".encrypt_url($id)."")' class="btn"></a>

Dan untuk melakukan decrypnya (membuka id yang di encrypt) dapat menggunakan decrypt_url($id);

Kodenya

  
 public function edit($id_user) {

   $id_user= decrypt_url($id_user);

 }


Done.. Hore...



Mengatasi Call to undefined function base_url() Codeigniter

Mengatasi Call to undefined function base_url() Codeigniter

Mengatasi  Call to undefined function base_url() di Codeigniter

#Base_Url Error
Mengatasi Call to undefined function base_url() Codeigniter
Mengatasi Call to undefined function base_url() Codeigniter



Menemui masalah seperti gambar di bawah ini ???.   Begini caranya....


codeigniter base_url2
Mengatasi Call to undefined function base_url() Codeigniter



Step By Step Konfigurasi

Masuk Ke Config > autoload.php.
Tambahkan tulisan array()  di $autoload['helper'];

codeigniter base_url1
Mengatasi Call to undefined function base_url() Codeigniter