Web Security#xss#frontend#owasp

XSS di tahun 2026: masih hidup, masih berbahaya

Framework modern meng-escape otomatis, tapi XSS tidak mati. Ia hanya pindah ke tempat yang lebih licik: atribut, URL, dan konten yang dipercaya mentah.

RRuyynn28 Mei 20267 menit baca

Kenapa masih ada

React, Vue, dan kawan-kawan meng-escape teks secara default. Ini menaikkan lantai keamanan secara dramatis. Tapi aplikasi web tidak hanya terdiri dari teks: ada href, ada dangerouslySetInnerHTML, ada render markdown, ada integrasi pihak ketiga.

XSS hari ini jarang berupa tag script polos. Ia bersembunyi di javascript: URL, di atribut event, di JSON yang diinjeksi ke halaman, dan di sanitasi yang salah konfigurasi.

Tiga kesalahan yang paling sering saya temui

Pola-polanya konsisten di banyak proyek.

  • Memercayai input dari API sendiri. Data dari database pun bisa tercemar bila pernah masuk tanpa validasi.
  • Sanitasi di tempat yang salah. Escape harus terjadi saat keluaran dirender, bukan saat masukan disimpan.
  • Merender HTML pengguna untuk fitur komentar atau profil tanpa sanitasi ketat, atau dengan sanitizer yang diizinkan tag berbahaya.

Lapisan pertahanan yang masuk akal

Pertama, default framework: jangan bypass escape tanpa alasan yang bisa kamu pertanggungjawabkan. Kedua, CSP yang ketat memangkas dampak XSS yang lolos: tanpa inline script, eksploitasi kehilangan giginya. Ketiga, cookie penting dengan HttpOnly dan SameSite supaya pencurian session tidak trivial.

Dan uji sendiri. Masukkan payload standar ke setiap form yang kamu buat sebelum orang lain melakukannya untukmu.

Bagikan tulisan
XLinkedIn

Tulisan terkait