Memfilter Perintah GET di PHP

Perintah GET di PHP umumnya digunakan untuk mendapatkan nilai dari variabel yang tersimpan pada halaman sebelumnya. Contoh sederhananya seperti ini 

ilustrasi halaman
Misalnya pada halaman I saya membuat sebuah link yang menyimpan sebuah data di variabel. Contoh seperti berikut

<a href="halaman2.php?lihat=<?php echo $data['id']?> ">KLIK HALAMAN2</a>

Ket*
Halaman2.php merupakan url yang dituju
lihat=<?php echo $data['id']?> ini merupakan variabel data yang tersimpan yang membuat id dari database

Ketika di klik kehalaman kedua maka akan membentuk sebuah url seperti berikut
http://domain.com/halaman2.php?lihat=1
angka 1 merupakan data variabel yang tersimpan, bisa berubah – ubah tergantung dari data yang bersangkutan.

Selanjutnya pada halaman 2 akan berusaha mendapatkan variabel data yang tersimpan tersebut menggunakan perintah GET kemudian di ikuti dengan nama variabel sebelumnya yaitu ‘lihat’ selanjutnya di eksekusi kedalam perintah Query

Contoh script pada halaman2.php


<?php
$lihat=$_GET['lihat']; //mendapatkan variabel yang tersimpan kemudian menyimpannya dalam variabel $lihat
$query="select * from tabel where id='$lihat'";

?>

Bila variabel $lihat pada halaman2.php tidak di filter maka yang terjadi ketika user dengan sengaja ataupun tidak menambahkan string didepan url data maka yang terjadi adalah error
Contoh :

http://domain.com/halaman2.php?lihat='1


error akibat data tidak di filter

Memfilter Perintah GET di PHP 
Supaya error tersebut tidak muncul pada saat user menambahkan string didepan variabel data yang tersimpan, maka kita perlu menambahkan sebuah filter pada variabel GET dengan menggunakan htmlentities

Contoh :

$lihat=mysql_escape_string(htmlentities($_GET['lihat']));
$query="select * from tabel where id='$lihat'";


Sehingga nanti meskipun user menambahkan/memasukan string tertentu di url tidak akan terjadi error atau di eksekusi sebagai perintah Query, hanya saja nanti mungkin datanya saja yang tidak akan muncul. Mungkin ada teknik lainnya yang lebih baik, namun cara sederhana untuk memfilter datanya seperti yang sudah Saya contohkan diatas.

Teknik filter tersebut juga sering di implementasikan kedalam halaman login untuk mencegah terjadinya serangan SQL Injection. 

2 Responses to "Memfilter Perintah GET di PHP"

  1. eta ku angger nyak, suguhan teh eweuh nu ngeunah jeung saselera jeung lidah sayah pisan ih...tuh geura ayeuna sagala GET di PHP in pulak....emangnya GET teh cewe apaan, coba?

    ReplyDelete
  2. Ari PHP teh naon tea mang, Peuyeum Hui Pulen lain? Hehee...

    ReplyDelete

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin