contact

Contact Person
Pin BB : 5AB31960
SMS : 082288467823
WA : 081275371724
call : 081275668074


Mencegah Exploit URL dengan enkripsi Method Get PHP

Posted in PHP MYSQL / i Life at 11 Oktober 2016 With 0 Comments

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…

Artikel Terkait

Diskusi