Digital Transformation

Web Cache Poisoning

Vito Atmo
Vito Atmo·25 Mei 2026·0 kali dibaca·3 min baca

TL;DR: Web Cache Poisoning adalah serangan di mana attacker menyuntikkan response berbahaya ke layer cache, seperti CDN atau reverse proxy, lalu cache tersebut melayani konten yang sudah teracun ke ribuan user lain. Mitigasi utamanya adalah memvalidasi semua input yang ikut menentukan cache key, membatasi header yang dianggap "tidak berpengaruh", dan memakai cache key yang ketat.

Apa itu Web Cache Poisoning?

Web Cache Poisoning terjadi saat sebuah request berhasil membuat cache layer (CDN, reverse proxy, atau in-memory cache) menyimpan response yang sudah dimodifikasi oleh attacker. Karena cache dirancang untuk berbagi response ke banyak user, satu request jahat bisa berdampak ke ribuan visitor sah dalam hitungan menit.

Akar masalahnya bukan pada cache itu sendiri, melainkan pada perbedaan persepsi antara aplikasi dan layer cache mengenai apa yang menjadi cache key. Contoh klasik: aplikasi memakai header X-Forwarded-Host untuk membangun URL kanonik, sementara cache hanya memakai path dan query sebagai key, sehingga response berisi host palsu disimpan dan dilayani ke semua orang.

Vektor Umum dan Mitigasi

VektorPenjelasan singkatMitigasi
Unkeyed headerHeader tidak dimasukkan ke cache key, tapi memengaruhi responseMasukkan ke Vary atau abaikan di aplikasi
Parameter cloakingQuery string ganda ditangani beda oleh cache vs aplikasiNormalisasi parameter di edge
Fat GETBody di request GET diabaikan cacheTolak GET berisi body
Path confusion/page?x=1 vs /page;x=1Normalisasi path di edge

Praktik dasar di proyek client Vito Atmo adalah menjalankan audit headers menggunakan checklist dari OWASP Web Cache Deception sebelum go-live, terutama saat mengaktifkan edge caching di Next.js atau Vercel.

Kenapa Penting?

Untuk website bisnis Indonesia yang memakai CDN agresif demi mengejar Core Web Vitals, risiko cache poisoning sering terabaikan karena tim fokus ke kecepatan, bukan ke validasi input cache key. Dampak realnya bisa berupa defacement halaman, redirect ke phishing, eksekusi script attacker, bahkan kebocoran sesi user lain saat cookie tidak dibatasi dari cache key.

Tidak perlu sampai jadi e-commerce besar untuk jadi target. Bot scanning otomatis akan menguji setiap subdomain yang aktif di Cloudflare atau CDN populer lain. Setting cache yang aman sejak awal jauh lebih murah daripada mitigasi pasca-insiden.

Pertanyaan Umum

Apakah Web Cache Poisoning sama dengan Cache Deception?

Tidak. Cache Poisoning memodifikasi response untuk visitor lain, sementara Cache Deception menipu cache agar menyimpan halaman privat user lain ke URL publik. Keduanya berbeda mekanisme, mitigasi mirip yaitu validasi key dan normalisasi path.

Apakah Vercel atau Cloudflare otomatis aman?

Cukup baik secara default, tapi bukan kebal. Konfigurasi cache-control, Vary, dan header custom tetap tanggung jawab pemilik aplikasi. Audit konfigurasi rutin tetap perlu.

Bagikan