Back

Jumat, 19 April 2024 | 14:53 | Author by Moch. Arief Febriansyah

Cross-Site Scripting (XSS): Cara Kerja, Tipe Serangan, dan Langkah-langkah Mencegahnya

Cross-site scripting (also known as XSS) is a web security vulnerability that allows an attacker to compromise the interactions that users have with a vulnerable application.”

Dalam era digital yang terus berkembang, ancaman terhadap keamanan web menjadi semakin kompleks, dengan salah satu ancaman yang paling sering dihadapi adalah Cross-Site Scripting (XSS). Dalam artikel ini, kita akan menjelajahi konsep XSS, memahami cara kerjanya, mengeksplorasi berbagai tipe serangan XSS, dan yang terpenting, mengidentifikasi langkah-langkah penting untuk mencegahnya. Mari kita mendalami dunia XSS untuk memperkuat pertahanan keamanan web kita.


Apa itu XSS?

Cross-site scripting atau yang lebih dikenal dengan XSS, merupakan sebuah celah dari keamanan website yang memungkinkan pelaku menyusup dalam interaksi seorang user yang sedang menggunakan website dengan keamanan yang minim. Tujuan utama dari penggunaan XSS ini untuk mengambil data penting, mengambil cookies dari user atau mengirimkan suatu script yang dapat merusak user namun seakan-akan penyebabnya adalah dari web itu sendiri. Oleh karena itu XSS ini tidak diketahui langsung oleh pemilik website itu sendiri, yang pada akhirnya akan memberikan kesan buruk terhadap developer atas kinerjanya membuat website tersebut.


Bagaimana cara kerja XSS?


Cara kerja XSS


Setelah kita memahami pengertian dari XSS, perlu diperhatikan bagaimana cara kerja dan betapa berbahayanya serangan ini untuk para developer website. Umumnya serangan ini dilakukan menggunakan Javascript, VBScript, ActiveX, Flash, dan client-side language lainnya. Salah satunya pelaku akan mengirimkan sebuah link yang berisi script berbahaya dan kemudian diakses oleh target. Setelah target running script tersebut, pelaku akan dengan mudah mendapatkan data-data penting yang dibutuhkan. Script ini bisa disisipkan dengan berbagai cara, seperti melalui form ataupun sejenisnya yang kemudian user akan membuka halaman tersebut.


Tipe serangan Cross-Site Scripting

  • Reflected Cross-Site Scripting
    Tipe ini akan muncul ketika aplikasi menerima data berupa request HTTP dengan menyertakan script berbahaya.

    Reflected Cross-Site Scripting

    Serangan ini dilakukan oleh pelaku dengan mengirimkan link berbahaya melalui email ataupun media sosial lainnya. Saat target mengklik link tersebut, script dapat melakukan tindakan apapun dan mengambil data penting yang bisa diakses.

  • Stored Cross-Site Scripting
    Tipe ini merupakan jenis yang paling merusak karena script tersebut akan disimpan secara permanen di server target.

    Stored Cross-Site Scripting

    Proses serangan tipe ini dimulai dari pelaku membuat sebuah script berbahaya dalam sebuah command input dan kemudian mengunggahnya. Korban mengakses websitenya yang kemudian akan memunculkan skrip berbahaya dalam response. Browser korban mulai menjalankan script dan mengirimkan cookie ke server pelaku.

  • DOM Cross-Site Scripting
    Dilakukan pelaku dengan memasukkan script yang mengubah environment DOM, sehingga halaman yang diakses terlihat baik-baik saja secara respon, namun ada script yang sedang berjalan yang kemudian akan dikirim ke server pelaku.

    DOM Cross-Site Scripting


Cara mencegah serangan Cross-Site Scripting



Cara mencegah serangan Cross-Site Scripting

 

  1. Filter input on arrival
    hal ini dilakukan dengan cara memfilter secara ketat inputan yang diterima dari pengguna.
  2. Encode data on output
    hal ini dilakukan ketika response dari sebuah api perlu di encode agar pelaku tidak mudah untuk mendapatkan data-data penting.
  3. Use appropriate response headers
    untuk mencegah XSS dalam response HTTP seperti Javascript atau HTML, kita dapat menggunakan header Content-Type dan X-Content-Type-Options agar memastikan browser menafsirkan respons sesuai yang diinginkan.
  4. Content Security Policy
    Sebagai pilihan terakhir, CSP bisa digunakan untuk mengurangi resiko serangan XSS. Fitur ini bertujuan untuk meningkatkan keamanan suatu website yang membantu mendeteksi dan mengurangi jenis serangan tertentu, seperti Cross-Site Scripting (XSS), serangan injeksi data, pencurian data, perusakan situs, hingga distribusi malware.


Untuk kebanyakan framework modern yang telah tersebar hingga kini, untungnya hanya memiliki sedikit bugs terkait XSS ini. Namun perlu diperhatikan lagi oleh para developer, ada beberapa celah yang dapat terjadi jika kita menggunakan framework tertentu, seperti contoh :

  • Escape hatches merupakan framework yang digunakan untuk memanipulasi DOM secara langsung.
  • React’s dangerouslySetInnerHTML tanpa menggunakan sanitize HTML.
  • React tidak dapat menangani javascript, data, atau URL tanpa validasi khusus.
  • Template Injection
  • Plugins atau component framework yang telah kedaluwarsa


Dengan pemahaman mendalam tentang bahaya Cross-Site Scripting (XSS) dan langkah-langkah yang efektif untuk mencegahnya, kita dapat memperkuat pertahanan sistem dan melindungi pengguna dari ancaman cyber yang terus berkembang. Melalui kesadaran dan tindakan proaktif, kita dapat menjaga keamanan dan integritas situs web serta melangkah maju menuju ekosistem internet yang lebih aman dan terlindungi bagi semua pengguna. Untuk informasi menarik lainnya seputar teknologi dan IT, kunjungi: Blog Radya.


Sumber:

Cross Site Scripting (XSS) | OWASP Foundation

Cross Site Scripting Prevention - OWASP Cheat Sheet Series

What is cross-site scripting (XSS) and how to prevent it? | Web Security Academy

XSS Explained with React and Vanilla JS Examples | Cross Site Scripting | dangerouslySetInnerHTML

Latest cross-site scripting news | The Daily Swig



Add Comment