Digital Transformation

COOP (Cross-Origin-Opener-Policy)

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

TL;DR: Cross-Origin-Opener-Policy (COOP) adalah header HTTP yang memisahkan halaman web Anda dari halaman lain yang membukanya lewat window.open atau iframe. Saat dipasang dengan nilai same-origin, halaman dari domain berbeda tidak bisa lagi mengakses objek window.opener Anda. Header ini diperlukan untuk membuka fitur cross-origin isolation, prasyarat dari API performa tinggi seperti SharedArrayBuffer dan performance.measureUserAgentSpecificMemory().

Apa itu COOP?

COOP adalah salah satu dari trio header keamanan modern bersama [CSP](/glosarium/csp-content-security-policy) dan Cross-Origin-Embedder-Policy. Tanpa COOP, halaman A yang dibuka dari halaman B (lewat window.open atau link target="_blank") berbagi browsing context group dengan B. Artinya, halaman B masih bisa memanggil window.opener.location untuk mendeteksi atau memanipulasi navigasi A. Kelas serangan ini dikenal sebagai tab-napping atau reverse tabnabbing.

Saat header Cross-Origin-Opener-Policy: same-origin dipasang, browser memutuskan tautan antar window. Halaman Anda mendapat browsing context group sendiri dan tidak terjangkau oleh skrip dari domain lain. Praktik ini juga membuka pintu cross-origin isolation, kondisi di mana browser memberi akses ke fitur memori dan timer presisi tinggi yang sebelumnya dimatikan karena risiko Spectre.

Tiga Nilai Utama

NilaiPerilaku
unsafe-noneDefault. Window bisa berinteraksi dengan halaman pembukanya.
same-origin-allow-popupsHalaman terisolasi, tapi popup yang dibuka dari halaman ini tetap terhubung.
same-originIsolasi penuh. Wajib untuk cross-origin isolation.

Spesifikasi lengkap ada di dokumentasi web.dev tentang COOP/COEP. Untuk konteks header keamanan lain, lihat HSTS dan Permissions-Policy.

Kenapa Penting untuk Marketer dan Developer Indonesia?

Banyak situs analytics dan widget pihak ketiga (chat, retargeting pixel) bergantung pada window.opener. Memasang COOP terlalu agresif tanpa audit dependency bisa membuat fitur tracking patah. Saat saya mendampingi sebuah klien Atmo (LMS) memasang isolation untuk fitur kursus berbasis WebAssembly, kami harus melakukan staging selama tiga minggu untuk memastikan integrasi pembayaran dan analytics tidak terganggu. Pendekatan yang bekerja: mulai dengan Cross-Origin-Opener-Policy-Report-Only untuk memantau dampak, baru aktifkan mode enforce setelah laporan stabil. Praktik ini juga membantu mencapai skor Core Web Vitals yang lebih baik karena beberapa optimisasi rendering hanya berlaku di konteks terisolasi.

Pertanyaan Umum

Apakah COOP dibutuhkan website biasa?

Tidak wajib, tapi sangat dianjurkan untuk website yang memproses data sensitif atau menggunakan fitur browser modern seperti SharedArrayBuffer. Untuk landing page sederhana, dampaknya minimal.

Apakah COOP menggantikan rel="noopener"?

Tidak. rel="noopener" di tag link adalah pertahanan per-link. COOP adalah pertahanan tingkat dokumen yang berlaku untuk semua window yang berinteraksi dengan halaman Anda.

Bagikan