Digital Transformation
Clickjacking (UI Redress Attack)
TL;DR: Clickjacking menyembunyikan situs target di dalam iframe transparan dan memikat pengguna mengklik elemen yang sebenarnya berada di situs lain. Pertahanan utamanya adalah header
X-Frame-Options: DENYatau direktifframe-ancestorsdi Content Security Policy, dan menambahkan konfirmasi tambahan untuk aksi sensitif.
Apa itu Clickjacking?
Clickjacking, kadang disebut UI Redress Attack, mengeksploitasi kepercayaan visual pengguna. Penyerang membungkus situs target di iframe yang dibuat hampir transparan lalu menempatkan tombol atau gambar memikat di atasnya. Saat pengguna mengklik elemen yang ia kira tombol "klaim hadiah", browser sebenarnya meneruskan klik ke iframe situs target. Jika pengguna sudah login di situs target, aksi seperti like, follow, ubah pengaturan, atau bahkan transfer dapat tereksekusi tanpa sepengetahuan korban.
Pola dan Mitigasi
| Pola | Contoh | Mitigasi server |
|---|---|---|
| Transparent overlay | iframe situs target di-set opacity: 0.01 | X-Frame-Options: DENY |
| Cursor spoofing | Cursor palsu menyesatkan target klik | frame-ancestors 'self' di CSP |
| Drag-and-drop | Menarik data dari halaman target | Konfirmasi langkah ganda untuk aksi sensitif |
Untuk aplikasi modern, direktif CSP frame-ancestors menggantikan X-Frame-Options karena lebih granular dan didukung browser baru. Best practice: kirim keduanya untuk kompatibilitas.
Kenapa Penting?
Untuk landing page kampanye, dashboard klien, hingga checkout e-commerce, clickjacking bisa menggagalkan trust yang dibangun susah payah. Vito Atmo menemui kasus konkret saat audit Vetmo, dimana halaman login admin awalnya tidak memiliki proteksi frame, sehingga rentan disematkan di situs phishing yang meniru halaman promosi. Setelah penambahan header dan CSP, vektor itu tertutup. Kombinasi serangan ini dengan XSS atau CSRF membuat dampaknya berlipat.
Pertanyaan Umum
Apakah pelarangan iframe membatasi integrasi pihak ketiga?
Iya untuk situs target. Jika layanan Anda perlu disematkan partner tertentu, gunakan frame-ancestors https://partner.com alih-alih DENY total.
Apakah cukup hanya mengandalkan JavaScript frame-busting?
Tidak. Frame-buster berbasis JS bisa di-bypass dengan sandbox attribute pada iframe. Selalu gunakan header server-side sebagai pertahanan utama.
Istilah Terkait