XSS (Cross Site Scripting) - Rian010/Journal GitHub Wiki

XSS (Cross Site Scripting)

XSS atau Cross Site Scripting adalah jenis serangan yang menggunakan skrip (biasanya JavaScript) yang dimasukkan ke dalam halaman web yang telah divisit oleh korban. Skrip tersebut kemudian akan dieksekusi oleh browser korban, dan dapat digunakan untuk mendapatkan informasi sensitif atau mengontrol aksi korban.

Berikut adalah contoh XSS yang umum terjadi pada form login:

Contoh Form Login

Dalam contoh di atas, jika korban memasukkan kode JavaScript berikut pada kolom "Username":

<script>alert('Hello World');</script>

Maka browser korban akan menampilkan dialog berikut:

Dialog Hello World

Hal ini menunjukkan bahwa kode JavaScript yang dimasukkan oleh korban telah dieksekusi oleh browser korban.

Untuk melakukan XSS, serangan dapat menggunakan beberapa teknik, antara lar:\

  • Persistent XSS: Serangan ini menyimpan skrip di dalam basis data atau file yang digunakan oleh aplikasi web. Setiap kali halaman web dimuat, skrip akan dieksekusi ulang.
  • Non-persistent XSS: Serangan ini menyisipkan skrip langsung ke halaman web melalui parameter URL atau POST request. Skrip hanya akan dieksekusi saat halaman web dimuat.
  • DOM Based XSS: Serangan ini mengambil advantage dari bug pada DOM (Document Object Model) browser. Skrip diinisialisasi oleh JavaScript yang dimuat oleh halaman web, sehingga tidak terdeteksi oleh filter input.

Untuk melindungi dari serangan XSS, beberapa langkah yang dapat dilakukan adalah:

  • Filter Input: Filters input dari pengguna untuk menghindari penyisipan skrip.
  • Output Encoding: Mengubah karakter spesial pada output menjadi bentuk yang aman.
  • Content Security Policy (CSP): Membatasi sumber dari konten yang dapat dimuat oleh browser.
  • HTTPOnly Cookie: Mengatur flag HTTPOnly pada cookie agar tidak dapat diakses oleh JavaScript.

Demikian pendekatan dan langkah-langkah yang dapat dilakukan untuk melindungi dari serangan XSS. Selamat mencoba!

⚠️ **GitHub.com Fallback** ⚠️