Halo teman-teman pada kesempatan kali ini saya akan menjelaskan tentang Mencegah Cross-site Scripting dan HTML injection.Kita akan membahas tentang cara mencegah user untuk memasukkan kode “khusus” seperti JavaScript atau kode HTML kedalam form.

Pengertian Cross-site Scripting dan HTML injection

Cross-site Scripting atau sering disingkat dengan XSS adalah jenis serangan ke sebuah situs dengan cara ’menyisipkan’ kode script (biasanya JavaScript) ke dalam sebuah situs. Hal ini hanya akan berhasil jika situs tersebut memiliki fitur untuk menampilkan kembali isian form ke web browser, seperti form komentar. Sedangkan HTML injection adalah istilah yang lebih spesifik kepada cara ’menyisipkan’ kode HTML kedalam sebuah situs.

Sebagai programmer web, penanganan untuk Cross-site Scripting maupun HTML injection merupakan hal yang sangat penting, terutama dalam pembuatan kode form dengan PHP. Karena form pada dasarnya dapat diinput oleh siapa saja, maka kita perlu memproteksi situs dari kode-kode berbahaya yang bisa diinput oleh user melalui form.

Contoh Cross-site Scripting dan HTML injection

Agar lebih memahami maksud dari Cross-site Scripting dan HTML injection, kita akan coba menginputnya melalui contoh halaman form.html dan proses.php dari tutorial sebelumnya.

Silahkan buka halaman form kita (form.html), lalu input kode dibawah ini kedalam dalam salah satu kotak inputan form:

Tampilan tersebut adalah hasil dari kode JavaScript yang baru saja kita input melalui form. Kode tersebut dapat berjalan karena pada halaman proses.php kita langsung menampilkan data yang diinput oleh user tanpa melakukan proses filter.

Hal ini sangat berbahaya karena dengan kode JavaScript seseorang bisa melakukan ’hampir segalanya’ dengan situs kita. Tidak hanya sekedar menampilkan ucapan selamat seperti kode diatas, tetapi seseorang juga bisa merubah background, mengubah tampilan seluruh web, bahkan mengarahkan pengunjung ke situs lain (redirect).

Sebagai catatan, ketika kita menggunakan Google Chrome, tampilan javascript tersebut tidak muncul karena Google Chrome memiliki mekanisme pencegahan kode javascript internal ketika diinput melalui form. Untuk penjelasan selanjutnya akan dibahas dipostingan setelah ini (part-2). Semoga bermanfaat