Kamis, 08 Oktober 2015

PHP - Membuat function anti_injection



Teknik sql injection adalah suatu teknik yang sering digunakan oleh para attacker.
Teknik XSS  (Cross Site Scripting) merupakan suatu cara untuk memasukan / menginjeksikan kode-kode HTML ke suatu situs dengan menggunakan browser.
<?php function anti_injection($data){ $filter = stripslashes(strip_tags(htmlspecialchars($data,ENT_QUOTES))); return $filter; } //contoh cara penggunaan $name=anti_injection($_POST['name']); $email=anti_injection($_POST['email']); $kota=anti_injection($_POST['kota']); ?>
saya akan menjelaskan sedikit mengenai beberapa fungsi berikut :

Fungsi stripslashes() Dalam PHP



Karakter backslash (“\”) dalam bahasa pemrograman dikenal sebagai karakter escape, yaitu karakter yang digunakan untuk memungkinkan karakter khusus ditampilkan bersama dengan karakter biasa.
Salah satu contoh dari karakter khusus adalah karakter apostrophe (tanda petik, kutip tunggal). Di dalam program PHP, apostrophe digunakan untuk tanda yang mengapit data yang dianggap sebagai karakter atau string.
Contoh:
$nama=’Budi’;
Data string Budi dimasukkan ke dalam variabel nama.
Contoh lain:
echo ‘Budi ‘;
Tetapi bagaimana jika kita ingin menampilkan tulisan Imam Syafi’i, seperti berikut:
echo ‘Imam Syafi’i’;
Apa yang terjadi?
Salah satu solusi dari PHP adalah, dengan mengapit data string dengan menggunakan tanda kutip (quote, double quote). Solusi di atas dapat dilakukan dengan cara berikut:
echo “Imam Syafi’i”;
Tetapi, pada kasus tertentu, penggunaan karakter tanda kutip tidak bisa menyelesaikan masalah, seperti pada perintah SQL, yang mengharuskan tanda apostrophe sebagai pengapit data string. Apostrophe tidak bisa diganti dengan quote.
Contoh perintah SQL:
insert into personal (nama) values (‘Imam Syafi’i’);
tidak bisa ditulis dengan
insert into personal (nama) values (“Imam Syafi’i”);
Solusi untuk kasus di atas adalah dengan menggunakan karakter escape, tanda backslash, sehingga menjadi:
insert into personal (nama) values (‘Imam Syafi\’i’);
Karakter escape sering kali ditambahkan oleh software tertentu, secara otomatis, untuk menjaga integritas data, supaya diterima oleh penerimanya dengan benar.
Akan tetapi pada kasus tertentu, penambahan karakter escape secara otomatis ke dalam string yang memiliki karakter spesial, menjadikan data yang diterima oleh penerima menjadi rusak (kacau), tidak sesuai dengan yang diharapkan. Salah satu kasus seperti ini terjadi jika kita memrogram PHP dengan menggunakan model JSON dan AJAX untuk mengirimkan data ke server.
Jika kita memiliki data string yang memiliki karakter spesial dan di dalamnya ada karakter escape, kemudian kita akan menampilkan atau memanipulasinya, maka karakter escape akan menjadi pengganggu. Mengapa? Karena dalam bentuk string biasa, bukan string untuk SQL, maka karakter escape menjadi tidak diperlukan. Untuk itu kita perlu membuangnya.
Perintah untuk membuang dapat menggunakan perintah:
  • str_replace()
  • stripslashes()
Fungsi str_replace() adalah fungsi dasar, yang bersifat lebih umum, untuk melakukan pembuangan suatu karakter atau string yang ada dalam suatu string. Sebenarnya lebih tepat sebagai fungsi untuk penggantian. Jika penggantinya adalah karakter ”, maka string dapat diartikan menjadi dibuang. 
Contoh:
$nama=”Imam Syafi\’i”; $nama=str_replace(“\”,””,$nama);
PHP menyediakan fungsi yang khusus untuk membuang karakter escape “\”, kita tidak perlu lagi menggunakan fungsi str_replace dengan menggunakan banyak parameter. Berikut adalah hasil penyederhanaannya:
$nama=stripslashes($nama);

Fungsi Strip_tags() : digunakan untuk menghilangkan karakter2 html dari value yg diinputkan, misalny pd form login atau guest book.

Fungsi 
htmlspecialchars() sebuah fungsi atau sebuah perintah atau sintax yang di miliki oleh PHP yang berguna untuk menontaktifkan seluruh perintah – perintah html mengubah specialpada sebuah halamn web.

0 komentar:

Posting Komentar