Cara Mudah Enkripsi Parameter GET di PHP
Perintah GET di PHP umumnya digunakanuntuk mengirim suatu nilai tertentu kehalaman lain, nilai yang dikirim bisa saja berupa id atau data tertentu dari database yang selanjutnya dimasukan kedalam parameter query untuk melakukan edit, update ataupun delete data. Perintah GET memang sangat membantu proses CRUD di PHP.
Terkadang Saya ataupun banyak orang diluar sana yang belajar PHP merasa risih dengan nilai dari parameter url yang dikirim menggunakan perintah GET, sehingga mungkin tidak sedikit yang mencoba berbagai macam cara untuk supaya bagaimana menyembunyikan id atau parameter url yang dikirim menggunakan GET, bagaimana mengenkripsi nilai yang dikirim oleh GET, memanipulasi nilai yang dikirim oleh parameter GET sehingga user tidak bisa membaca nilai yang terlihat pada url address bar browser, itulah yang ada didalam pikiran saya, mungkin sebenarnya sederhana, tapi bagi seorang yang masih baru seperti Saya kadang sering merasa kesulitan dalam mencoba dan belajar hal – hal baru.
Baca juga : Memfilter Perintah GET di PHP
Cara Mudah Enkripsi Parameter GET di PHP
Mungkin setiap orang memiliki cara atau teknik tersendiri dalam melakukan enkripsi url yang di kirim menggunakan perintah GET, tapi dalam praktik kali ini Saya akan menjelaskan 2 (dua) metode sederhana untuk mengenkripsi nilai yang dikirim oleh parameter GET di PHP, yaitu dengan menggunakan enkripsi md5 dan base64
Saya akan memberikan sebuah contoh sederhana, silahkan berkreasi sendiri untuk bagaimana nantinya bisa diterapkan pada aplikasi berbasis web yang Anda buat.
Enkripsi Paremater yang dikirim menggunakan perintah GET menggunakan md5
Buatlah dua buah file, file pertama bertugas untuk mengirim parameter GET dan file kedua untuk mengeksekusi nilai yang dikirim oleh GET. Contohnya disini saya akan membuat file enkripsi.php yang mengirim nilai GET, dam
Contoh :
enkripsi.php
<?php
$parameter = "abc"; //nilai parameter yang dikirim GET
$salt = "cV0puOlx"; //untuk tambahan enkripsi acak di md5
$hashed = md5($salt.$parameter); //enkripsi nilai yang dikirim
header("Location: http://localhost/enkrip/enkrip.php?param=$parameter&hash=$hashed");
?>
enkrip.php
<?php
$parameter = $_GET['param']; //dapatkan nilai parameter
$hash = $_GET['hash']; //dapatkan nilai hash
$salt = "cV0puOlx";
$hashed = md5($salt.$parameter);
//lalu coba cek dan bandingkan, jika nilai get dirubah atau diganti maka akan terjadi failed
if ($hash == $hashed){ //bandingkan hash yang dikirim dengan parameter yang dienkripsi
echo "enkrip sukses";
}else{
echo "enkrip failed";
}
?>
Bila skrip diatas dieksekusi pada browser maka hasilnya akan terlihat seperti berikut
Bila dilihat di url/address maka akan terlihat angka – angka yang rumit, namun sebenarnya nilai parameternya “abc” masih bisa dibaca di address, namun bila dirubah nilainya secara manual dari adress bar, maka akan muncul pesan enkrip failed, karena parameter yang dikirim dibandingkan degan nilai yang dienkripsi oleh md5.
Enkripsi Paremater yang dikirim menggunakan perintah GET menggunakan base64
Cara yang paling mudah menurut Saya adalah menggunakan enkripsi base64, decode/encode. Paramter yang dikirim oleh GET bisa di encode (enkripsi) kemudian halaman selanjutnya yang menerima data bisa bertindak sebagai halaman yang melakukan decode (deskripsi) data yang dikirim oleh GET
Contoh :
encode.php
<?php
$link = urlencode(base64_encode("root93"));
header("Location: http://localhost/enkrip/decode.php?param=$link");
?>
decode.php
<?php
foreach($_GET as $loc=>$link)
$_GET[$loc] = base64_decode(urldecode($link));
$banding="root93";
$vari=$_GET[$loc];
if($banding == $vari){
echo "Sukses Decode";
}else{
echo "failed";
}
?>
Bila skrip diatas diatas dieksekusi oleh browser maka akan terlihat seperti berikut
Begitulah cara saya mengenkripsi parameter yang dikirim menggunakan perintah GET di PHP, setiap orang mungkin memiliki cara/teknik yang berbeda – beda, tapi kalau secara sederhananya untuk enkripsi parameter GET adalah seperti itu, untuk implementasi ke aplikasi berbasis web yang Anda buat silahkan berkreasi sendiri karena cara diatas hanyalah sebuah contoh, sehingga mungkin untuk penerapannya ke Aplikasi berbasis web yang Anda buat mungkin akan berbeda.
#Update 08 Januari 2020
Untuk praktiknya kalian bisa coba buka dulu contoh latihannya pada halaman berikut : CRUD PHP OOP STYLE selanjutnya kalian bisa mempraktikan konsep enkripsinya seperti pada tutorial video dibawah ini
Lalu cara mengaplikasikannya langsung ke web bagaimana gan, contohnya ini domain,com/file/1 lalu caranya agar bisa terenkripsi contohnya domain,com/file/ajsbsb
ReplyDeletenanti saya jelaskan lagi mas..
Delete