Cross-origin izolasyon, bir sayfanın diğer sitelerin pencere ve kaynaklarıyla etkileşimini sıkı biçimde sınırlayan tarayıcı modudur. Bu modda SharedArrayBuffer gibi güçlü özellikler kullanılabilir ve Spectre benzeri yan kanal saldırılarının etkisi azalır. Modun güvenli bağlamda, yani HTTPS üzerinde çalışması beklenir.
Gerekli başlıklar
- Cross-Origin-Opener-Policy (COOP):
same-origindeğeri, sayfanın başka kaynaklı pencerelerle paylaşılan bağlamda olmasını engeller. - Cross-Origin-Embedder-Policy (COEP):
require-corpdeğeri, yalnızca izin veren kaynakların yüklenmesini sağlar. - Cross-Origin-Resource-Policy (CORP): Kaynağınızı hangi sitelerin yükleyebileceğini belirler (
same-origin,same-site,cross-origin).
Etkinleştirme adımları
- Sitenizin tamamının HTTPS ile sunulduğundan emin olun.
- Başlıkları ekleyin:
add_header Cross-Origin-Opener-Policy "same-origin" always;
add_header Cross-Origin-Embedder-Policy "require-corp" always;
add_header Cross-Origin-Resource-Policy "same-origin" always;
- Sayfada
self.crossOriginIsolateddeğerinintrueolduğunu tarayıcı konsolunda doğrulayın. - Harici kaynaklar (görsel, script, font) için sağlayıcının CORP başlığı göndermesini veya etikette
crossoriginniteliği kullanılmasını sağlayın.
Sık sorunlar
- COEP nedeniyle üçüncü taraf görsel ve iframe'lerin engellenmesi; konsolda ilgili CORP/COEP uyarısı görünür.
- COOP nedeniyle ödeme veya giriş açılır pencerelerinin opener bağlantısını kaybetmesi;
same-origin-allow-popupsdeğeri değerlendirilebilir. - Önce
Cross-Origin-Embedder-Policy-Report-Onlyile denemeden yayına almak.
Kullanım alanları
Cross-origin izolasyon gerektiren tipik durumlar arasında SharedArrayBuffer kullanan WebAssembly uygulamaları ve yüksek çözünürlüklü zamanlayıcı ihtiyacı duyan araçlar bulunur. Sıradan içerik siteleri için zorunlu değildir; yalnızca gerçekten ihtiyaç duyan uygulamalarda ve uyumluluk testiyle devreye alın. Üçüncü taraf gömmeleri (harita, video, ödeme) en çok etkilenen alanlardır.
Bu başlıkların tümü kaynakların güvenli iletilmesine dayanır; mixed content varsa izolasyon sağlanamaz. HTTPS altyapınız için SSL sertifikaları, kurulum kontrolü için SSL denetleyici kullanılabilir. Sonuç olarak önce raporlama modunda deneyin, sonra zorlayın.