Apa itu Cross Site Scripting (XSS)? Bagaimana cara mencegahnya?
Cross Site Scripting (XSS) merupakan kode HTML atau Client Script yang berdampak pada penyerangan website. Salah satu jenis serangan yang paling berbahaya dan banyak ditemukan yaitu pada google, facebook, Amazon, Paypal dan lain sebagainya. Serangan Cross Site Scripting digunakan untuk mencuri cookie, penyebaran malware session hijacking / pembajakan session, dan pembelokkan tujuan / malicious redirects. Penyerangannya dilakukan dengan ‘menyisipkan’ kode script (biasanya JavaScript) ke dalam sebuah situs. Jika situs ini memiliki fitur untuk menampilkan kembali isian form ke web browser, maka kemungkinan akan berhasil.
Contoh
Jika anda memiliki chat box atau comment box, kami sarankan untuk lebih berhati-hati dengan karakter yang diterima oleh input box. Jika anda mencoba memasukkan komen atau pesan pada chat box dengan contoh sebagai berikut
Terdapat juga script yang disisipkan pada tag html, seperti contoh tag emg
Penyerangan dapat juga dengan menambahkan client script untuk redirect website ke web pemilik. Tujuannya yaitu untuk menambah traffic atau backlink ke web penyerang.
Kategori XSS
Terdapat dua kategori pada XSS, yaitu Presistent dan Non-Presistent. Serangan Presistent berdampak permanen karenan script diinjek ke database atau secondary storage, sedangkan serangan Non-Presistent bersifat sementara dan membutuhkan aktivitas sosial kepada calon korban.
Cara mencegah Cross Site Scripting (XSS)
Salah satu cara untuk menghindari Cross Site Scripting yaitu dengan menggunakan fungsi PHP yaitu strip_tags(.) yang berfungsi untuk menghilangkan semua tag HTML atau dengan menggunakan fungsi htmlentities(.) yang berfungsi mengganti karakter < dan > menjadi < dan >.
Cara mencegah XSS untuk User
Dilakukan dengan mematikan semua bahasa script yang terdapat pada komputer. Hal ini menyebabkan beberapa fungsionalitas pada site yang sedang dikunjungi menjadi tidak berjalan. Cara lain yang dapat anda lakukan yaitu dengan lebih berhati-hati dalam mengunjungi sebuah situs, terutama source URL nya.
Cara mencegah XSS untuk Developer atau suatu Organisasi
Pengembang aplikasi perlu menyelaraskan antisipasi pengamanan sesuai kebutuhan bisnis. Cara yang bisa anda lakukan yaitu dengan memastikan bahwa halaman yang membangkitkan konten secara dinamis tidak mendukung tag yang tidak diinginkan.
Sumber yang umum dijadikan titik masuk yaitu Query string, URL’s dan bagian universal locator, data yang dikirimkan, cookies, data persisten oleh user.
Cara pencegahan yang dapat dilakukan interaksi dengan sisi klien , yaitu dengan:
-
Filtering
Dengan mewaspadai karakter-karakter khusus, seperti:
- Terletak pada isi dari elemen blok level
- “<” : pembuka sebuah tag
- “&”: penanda sebuah entitas
- “>”
- Terletak di dalam nilai suatu atribut
- di dalam nilai suatu atribut, diapit tanda petik ganda
- di dalam nilai suatu atribut, diapit dengan petik tunggal
- di dalam nilai suatu atirbut, tanpa diapit tanda petik
- “&” dengan conjunction
- Terletak pada URL
- spasi, tabulasi dan pindah baris sebagai penanda akhir dari suatu URL
- “&” menandai suatu entitas, atau batas parameter CGI
- Karakter yang bukan ASCII : tidak ada karakter non-ASCII di URL
- “%”:
- Terletak di antara <SCRIPT> dengan </SCRIPT> : titik koma, tanda kurung, kurung kurawal dan ganti garis.
- Terletak di dalam server side script yang akan mengkonversikan tanda seru di input menjadi tanda petik ganda di output.
-
Validasi
Teknik ini dilakukan untuk menjamin hanya input yang tepat yang akan dipilih.
-
Encoding
Dengan melakukan encoding, data anda tidak akan hilang, meskipun pengkodean karakter yang dinilai membahayakan.
Pengkodean dapat dilakukan saat data disampaikan kembali ke user.
Diatas merupakan artikel mengenai Cross Site Scripting (XSS) dan cara mencegahnya. Semoga artikel ini dapat menambahkan wawasan dan pengetahuan baru untuk Anda.
Terima Kasih