Mencegah Exploit URL dengan enkripsi Method Get PHP
Cara Enkirpsi Method Get agar Aman , Pada artikel kali ini kita akan membahas method GET pada PHP, Enkripsi merupakan suatu cara untuk melindungi data, sementara Method GET apa sih??? contoh url yang dibuat dengan menthod GET di localhost ini : http://localhost/proses.php?modul=berita&aksi=edit&id=1, Dari URL tersebut kita dapat mengetahui tujuan URL, yaitu akan di terima oleh file proses.php adalah modul, aksi dan id dimana nilai dari modul=berita, aksi=edit dan id=1.i
URL yang terlihat begitu polos akan mudah untuk dilakukan ekpolitasi, user jahil mereka akan cenderung ingin mencoba-coba menggati nilai dari parameter-parameter tersebut misalnya diganti seperti ini http://localhost/proses.php?modul=berita&aksi=delete&id=1, mereka akan berfikiran kalo ada aksi=edit berarti ada aksi=delete atau aksi=hapus….
Cara Enkripsi Method GET di PHP agar aman
Metode yang akan saya gunakan untuk mengenkripsi adalah metode enkripsi blowfish, tidak usah bingung dan bimbang sudah ada class enkripsi blowfish jadi kita tinggal menggunakan saja, enak to… bisa di peroleh di http://www.phpclasses.org/ atau download di SINI.
Oke cara menggunakannya cukup mudah…
1. Copy kan saja file yang telah di download ke folder project kita
2. Kemudian saya buat file bernama berita.php, berikut cara menggunakan enkripsinya :
<?php
require_once("Chiper.php"); // panggil filenya
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$kunci = "almazari"; // kunci
$modul = "berita"; // isi parameter modul
$aksi = "edit"; // isi parameter aksi
$id = "1"; // isi parameter id
$en_modul = $cipher->encrypt($modul, $kunci); // enkripsi
$en_aksi = $cipher->encrypt($aksi, $kunci); // enkripsi
$en_id = $cipher->encrypt($id, $kunci); // enkripsi
echo "<a href='proses.php?modul=$en_modul&aksi=$en_aksi&id=$en_id'>EDIT</a>";
?>
Untuk kunci nya bisa di ubah sesuai selera semakin panjang dan rumit saya rasa semakin bagus, karna bisa saja enkripsi tersebut tanpa kunci seperti berikut
$en_modul = $cipher->encrypt($modul);
tapi akan sangat mudah untuk di dekripsi.
File berita.php tersebut hanya akan membuat sebuah link dengan label EDIT.
3. Buat file bernama proses.php sebagai penerima, codenya seperti berikut
<?php
require_once("Chiper.php"); // panggil file nya
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$kunci = "almazari";
$getmodul = $_GET['modul']; // dapatkan nilai parameter modul
$getaksi = $_GET['aksi']; // dapatkan nilai parameter aksi
$getid = $_GET['id']; // dapatkan nilai parameter id
$de_modul = $cipher->decrypt($getmodul, $kunci); // dekripsi
$de_aksi = $cipher->decrypt($getaksi, $kunci); // dekripsi
$de_id = $cipher->decrypt($getid, $kunci); // dekripsi
echo "Modul : $de_modul <br>";
echo "AKsi : $de_aksi <br>";
echo "Id : $de_id ";
?>
Yang perlu di perhatikan adalah kunci nya, jika tidak sama dengan yang di deskripsikan pada file berita.php maka tidak akan terbaca…
Sekarang urlnya menjadi http://localhost/proses.php?modul=0W1trL73CuE=&aksi=a8jQV7Xje2U=&id=nFqF7x1phDQ=
Gimana ? mudah dan jadi lebih secure kan??
Oke silahkan di coba-coba, semoga bisa bermanfaat…??
Kalo ada yang salah dari penyampaian saya, saya hanyalah manusia biasa..jadi mohon di maafkan ya…