Clickjacking & UI Redressing — Security

Apa itu Clickjacking? Clickjacking (UI Redressing) adalah serangan di mana penyerang membuat halaman web yang menipu pengguna untuk mengklik sesuatu yang…

Apa itu Clickjacking?

Clickjacking (UI Redressing) adalah serangan di mana penyerang membuat halaman web yang menipu pengguna untuk mengklik sesuatu yang berbeda dari apa yang mereka lihat. Biasanya dengan menyembunyikan website target di dalam iframe transparan.

Bagaimana Clickjacking Bekerja

<!-- Halaman penyerang -->
<style>
    iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        opacity: 0;   /* Iframe transparan — tidak terlihat */
        z-index: 10;  /* Di atas konten halaman penyerang */
    }
</style>

<!-- Halaman palsu yang terlihat -->
<h1>Klik untuk menang undian!</h1>
<button>KLAIM HADIAH</button>

<!-- Iframe website target yang tersembunyi -->
<iframe src="https://bank.com/transfer?to=hacker&amount=1000000"></iframe>

<!-- User mengira klik "KLAIM HADIAH" tapi sebenarnya klik tombol transfer! -->

Contoh Serangan Clickjacking

Cara Mencegah Clickjacking

1. X-Frame-Options Header

// Melarang website di-embed dalam iframe
X-Frame-Options: DENY

// Hanya izinkan dari domain yang sama
X-Frame-Options: SAMEORIGIN

// Express.js
app.use((req, res, next) => {
    res.setHeader("X-Frame-Options", "DENY");
    next();
});

2. Content Security Policy frame-ancestors

// CSP lebih fleksibel dari X-Frame-Options
Content-Security-Policy: frame-ancestors 'none'          // Setara DENY
Content-Security-Policy: frame-ancestors 'self'          // Setara SAMEORIGIN
Content-Security-Policy: frame-ancestors https://trusted.com  // Izinkan domain tertentu

3. JavaScript Frame-Busting

// Fallback jika header tidak bisa di-set
if (window.self !== window.top) {
    // Halaman ini di dalam iframe!
    document.body.innerHTML = "Halaman ini tidak bisa ditampilkan dalam iframe.";
    window.top.location = window.self.location;
}

Best Practices

Yang akan kamu pelajari