Belajar PHP: Melakukan filter Form HTML secara keseluruhan

Submitted Form, baik dengan metode GET maupun POST perlu di filter. Filter ini digunakan untuk mencegah penggunaan berbagai teknik injeksi dan intrusi keamanan data, seperti SQL Injection, XSS dll. Ada beberapa solusi yang biasa saya gunakan.

Yang pertama, membuat fungsi PHP yang melakukan filter data yang dikirim tersebut:

function strfilter($input)
	{
	$input=trim($input);
	$input=strip_tags($input);
	$input=nl2br($input);
	$input=addslashes($input);
	$input=stripslashes($input);
	$input=str_ireplace("'", "%", $input);
	$input=str_ireplace( "''", '%', $input );
	$input=str_ireplace( '""', '%', $input );
	$query = preg_replace( '|(?<!%)%s|', "'%s'", $input );
	$input=htmlentities($input, ENT_QUOTES);
	$input=ltrim($input);
	$input=rtrim($input);
	return $input;
	}

Untuk penggunaanya cukup mudah:

$data_terfilter = strfilter($_POST['judul_berita');

Nah, solusi ini efektif jika digunakan pada form dengan elemen yang sedikit, jika terdiri dari banyak elemen cukup menyulitkan juga. Untuk itulah, buatlah sebuah fungsi baru yang digunakan untuk melakukan filtering form HTML secara keseluruhan.

function filter_submittedform($submitted_forms){
	$array = array();
	foreach(array_keys($submitted_forms) as $forms){
		$array[$forms] = strfilter($submitted_forms[$forms]);
	}
	return $array;
}

Untuk penggunaanya:

$data_post = filter_submittedform($_POST);
//atau
$data_get = filter_submittedform($_GET);

Balikan dari fungsi tersebut adalah sebuah array dengan isi yang telah terfilter. Sekarang anda bisa langsung melakukan pengolahan lebih lanjut array ini ke database tanpa perlu difilter lagi atau khawatir mengandung script injection.

Selamat mencoba!

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

6 Responses

  1. Rian says:

    Wah, mantap ni, Makasih banyak atas script validasinya, sangat membantu

  2. Ade says:

    gan filter diatas bagus ngg buat filter form login,,

  3. Ade says:

    gan kalau untuk form komen yang menggunakan tinymce menggunakan filter apa saja ya soalnya kalau dimasukin semua ketika dipanggil menjadi acak-acakan

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: