2012-06-17

tips php buat post

selama ini gwmenghadapi yang namanya mengirimkan data melalui POST !!! Tentu akan wajar kalau yang terkirim dari page 1 ke berikutnya 1 bahkan 10 ! Saat itu kugunakan cara biasa yaitu meletakkan semua isi POST ke variable seperti berikut : "$nama=$_POST['nama'];". Bayangkan betapa merepotkan kalau harus berurusan dengan 10 variable lainnya. Tetapi apa daya, yang namanya untuk keamanan, hal ini harus dilakukan.

Pada jaman dulu, kita sebenarnya bisa akses langsung tanpa harus pake $_POST['nama'], tetapi akibat dari hal tersebut kebocoran web sering terjadi. bayangkan si hacker kirim data yang tidak seharusnya. Sekarang juga demikian walau sudah di proteksi dan dipersulit dengan $_POST, kebocoran dapat terjadi.



Sebenarnya menulis "$nama=$_POST['nama'];" adalah tindakan yang tidak tepat, karena itu sama saja dengan sebelumnya yaitu saat dimana tidak ada proteksi POST seperti sekarang. Seharusnya kita menulis:
$nama=trim($_POST['nama']);
walau begitu ini juga kurang tepat karena kamu harus melakukan pengechekan dan lain-lain. tetapi setidaknya format ini benar. Berikutnya bayangkan kamu melakukan 10x perintah yang sama.. Andai saja ada cara yang lebih enak!!

Sebenarnya ada! Bukannya ngak ada, namun perlu digaris bawahi bahwa cara ini .... mungkin ada bagusnya langsung kukasi scriptnya


 <?php

foreach($_POST as $nm=>$val)
{
    $$nm= trim( $val );
//dikasi jarak agar mudah di mengerti
}
Bila anda punya 20 (dalam kasus saya 100!!!) variable yang dikirim via POST, maka jari anda akan selamat  dari ngetik koding panjang-panjang!! Belum lagi nanti anda harus menulis

Melihat dari script ini saya harapkan anda dapat mengetahui beberapa hal seperti ada kemungkinan kebocoran data misalnya ada yg memasukkan nilai POST yang berhubungan dengan variabel penting. Karena perintah di atas akan menghasilkan variable yang sesuai yang dikirim.

Namun kebocoran (udah agak masuk ke tingkat menengah) dapat dihindari dengan adanya membuat variable yang dianggap penting memiliki nilai dahulu. Misal variable limit. Tetapi letakkan perintah tersebut setelah perintah ini, jangan sebelumnya.

Tidak ada komentar: