I. Pendahuluan
Keamanan web adalah hal penting yang harus diperhatikan dalam pengembangan aplikasi. Banyak situs dan aplikasi web yang terlihat baik dari luar, tetapi memiliki celah keamanan yang bisa dimanfaatkan oleh penyerang. Salah satu serangan yang cukup sering terjadi adalah Cross Site Scripting atau XSS.
XSS adalah teknik serangan yang memanfaatkan celah dalam sistem web untuk menyisipkan skrip berbahaya. Dalam panduan ini, kita akan membahas XSS dari sisi teori hingga praktik, agar kamu bisa lebih memahami cara kerja dan cara mencegahnya.
II. Dasar Teori Cross Site Scripting (XSS)
XSS adalah serangan di mana penyerang menyisipkan kode (biasanya JavaScript) ke dalam halaman web. Kode tersebut akan dijalankan di browser korban seolah-olah berasal dari situs yang sah. Serangan ini bisa menyebabkan pencurian data, pengalihan halaman, atau pengambilalihan akun.
XSS pertama kali dikenal sejak awal berkembangnya web interaktif. Karena celah ini umum ditemukan, XSS masuk dalam daftar OWASP Top 10, yaitu daftar sepuluh besar ancaman keamanan aplikasi web.
XSS bisa berakibat fatal bagi pengguna dan pemilik website. Misalnya, seorang pengguna bisa kehilangan sesi login atau datanya dicuri tanpa sepengetahuannya.
III. Jenis-Jenis Serangan XSS
Stored XSS adalah jenis serangan di mana skrip berbahaya disimpan secara permanen di server. Contohnya, penyerang menyisipkan skrip di kolom komentar, dan setiap orang yang membuka komentar tersebut akan terkena serangan.
Reflected XSS terjadi ketika skrip berbahaya dikirim lewat URL atau input form dan dipantulkan kembali ke halaman web. Ini sering dimanfaatkan dalam phishing, di mana pengguna diarahkan ke link palsu.
DOM-Based XSS terjadi di sisi klien, yaitu di browser pengguna. Serangan ini memanfaatkan JavaScript yang tidak aman di dalam halaman web. Jika skrip dalam halaman tidak memfilter input pengguna, maka XSS bisa terjadi hanya dengan mengubah URL.
IV. Cara Kerja Serangan XSS
Penyerang biasanya memulai dengan mencari input pengguna yang tidak difilter, seperti kolom komentar atau parameter URL. Setelah itu, penyerang menyisipkan skrip seperti:
Ketika korban membuka halaman tersebut, skrip dijalankan dan bisa digunakan untuk mencuri cookie, mencatat keystroke, atau mengalihkan ke situs lain. Browser tidak tahu bahwa skrip ini berbahaya karena berasal dari domain yang sah.
V. Studi Kasus XSS di Dunia Nyata
Beberapa situs besar pernah terkena XSS. Salah satunya adalah Twitter, di mana penyerang berhasil menyisipkan JavaScript dalam tweet yang tampak normal. Saat pengguna membuka tweet itu, skrip langsung berjalan dan melakukan aksi tertentu.
eBay juga pernah mengalami serangan XSS di bagian deskripsi produk. Penjual bisa menyisipkan skrip yang mencuri data pembeli. Serangan ini sempat ramai dibahas di komunitas keamanan.
Kedua kasus tersebut memperlihatkan bahwa XSS bisa terjadi di mana saja, bahkan pada situs yang sudah memiliki tim keamanan profesional.
VI. Praktik Menguji dan Mensimulasikan Serangan XSS
Untuk memahami XSS secara langsung, kita bisa menggunakan lingkungan pengujian yang aman seperti DVWA (Damn Vulnerable Web Application), bWAPP, atau XSS Game dari Google. Di platform ini, kita bisa mencoba menyisipkan skrip XSS dan melihat bagaimana serangan terjadi.
Contohnya, kita bisa mengetikkan <script>alert('XSS');</script>
ke dalam form komentar. Jika tidak ada perlindungan, maka skrip akan dijalankan ketika halaman dimuat ulang.
Ini adalah cara yang aman untuk belajar tanpa membahayakan website orang lain.
VII. Teknik Pencegahan dan Perlindungan
Langkah pertama adalah memvalidasi dan membersihkan input dari pengguna. Jangan biarkan karakter berbahaya seperti <, >, atau ” lolos begitu saja.
Kedua, escaping output adalah teknik untuk menampilkan karakter spesial sebagai teks biasa, bukan sebagai bagian dari kode. Ini penting saat menampilkan data pengguna di halaman HTML, JavaScript, atau URL.
Ketiga, gunakan Content Security Policy atau CSP. Ini adalah aturan yang diberi ke browser agar hanya menjalankan skrip dari sumber yang dipercaya.
Keempat, gunakan framework seperti React, Angular, atau Vue. Framework ini dirancang dengan keamanan sebagai prioritas, sehingga lebih sulit untuk menyisipkan XSS jika digunakan dengan benar.
Kelima, gunakan alat bantu seperti OWASP ZAP atau Burp Suite untuk memindai celah XSS di aplikasi sebelum dirilis.
VIII. Checklist Keamanan Anti-XSS untuk Developer
Berikut beberapa hal yang bisa digunakan sebagai panduan:
-
Apakah semua input dari pengguna divalidasi?
-
Apakah output dari data pengguna di-escape dengan benar?
-
Apakah CSP sudah diterapkan?
-
Apakah framework yang digunakan aman dari XSS?
-
Apakah pengujian keamanan dilakukan secara rutin?
Checklist ini bisa membantu developer lebih disiplin dan waspada terhadap ancaman XSS.
IX. Kesimpulan
Cross Site Scripting atau XSS adalah salah satu serangan yang paling sering ditemukan di aplikasi web. Meskipun terlihat sederhana, dampaknya bisa sangat merugikan. Namun dengan pemahaman yang cukup dan praktik yang benar, XSS bisa dicegah.
Melalui panduan ini, kita sudah mengenal teori XSS, jenis-jenisnya, contoh nyata, serta cara menguji dan mencegahnya. Pengembang web harus selalu ingat bahwa keamanan bukanlah fitur tambahan, melainkan bagian penting dari proses pembangunan aplikasi.
NAMA: AISYA
NIM: 23156201029
PRODI: SISTEM KOMPUTER