XSS adalah suatu cara memasukan code/script HTML kedalam suatu web site dan dijalankan melalui browser di client (echo.or.id).
Kepanjangan XSS adalah Cross Site Scripting, lho kenapa Cross disingkat jadi X?, jawabannya adalah karena singkatan CSS sudah dipakai oleh Cascading Style Sheet.
Search engine yang saya maksudkan bukanlah Google, Yahoo, dll, tapi search engine buatan sendiri yang biasa digunakan untuk mencari informasi pada suatu website.
Cara mengetahui adanya bugs ini adalah dengan memasukkan tag HTML ke search box, misalnya <h1>Test</h1> .
Jika hasil pencarian berubah menjadi heading level 1 (huruf menjadi besar) berarti ada bugs XSS pada web tersebut.
Cara Pencegahan
Bugs ini terjadi karena kesalahan programmer yang tidak melakukan filter terhadap apa yang diketikkan user saat menasukkan input.
Akibatnya user bisa dengan mudah menyisipkan berbagai kode ke search box tersebut. Ternyata tidak tag HTML saja yang bisa disisipkan ke search box, Javascript dan Client Side Programming lainnya pun bisa apabila browser memang mendukung.
Cara mencegahnya adalah dengan menghapus atau mengganti tag HTML yang di inputkan oleh user.
Filter Menggunakan PHP
PHP mempunyai beberapa fungsi yang bermanfaat untuk men-filter input dari user.
Contohnya strip_tags() dan htmlentities() .
Kedua fungsi terstbu mempunyai kegunaan yang berbeda, strip_tags() berfungsi untuk menghapus tag HTML sedangkan htmlentities() untuk mengganti tag HTML dengan HTML Entities.
Berikut ini contoh source codenya
<?php //Variabel yang akan di filter $str = '<h1>Test</h1>'; echo 'Filter menggunakan strip_tags() : '; echo strip_tags($str); echo '<br /><br />'; echo 'Filter menggunakan htmlentities() : '; echo htmlentities($str); ?>
Output dari kode diatas
Filter menggunakan strip_tags() : Test
Filter menggunakan htmlentities() : <h1>Test</h1>
Bisa dilihat dari output diatas bahwa fungsi strip_tags() digunakan untuk menghilangkan tag HTML dan htmlentities() digunakan untuk mengganti tag HTML menjadi HTML Entities.