Anonim iframe kaynak denemesi: iframe'leri COEP ortamlarına kolayca yerleştirme

Arthur Sonzogni
Arthur Sonzogni

COEP kullanan geliştiriciler artık COEP kullanmayan üçüncü taraf iFrame'leri yerleştirebilir.

COEP'ye neden ihtiyacımız var?

Bazı web API'leri, Spectre gibi yan kanal saldırısı riskini artırır. Bu riski azaltmak için tarayıcılar, kökler arası erişime kapalı olarak adlandırılan ve etkinleştirmeye dayalı bir izole ortam sunar. Bu ortam, diğerlerinin yanı sıra COEP'nin dağıtılmasını gerektirir. Bu sayede web siteleri SharedArrayBuffer, performance.measureUserAgentSpecificMemory() ve daha yüksek çözünürlüklü yüksek hassasiyetli zamanlayıcılar gibi ayrıcalıklı özellikleri kullanabilir.

Kaynaklar arası izolasyonu etkinleştirmek için web sitelerinin aşağıdaki iki HTTP üst bilgisini göndermesi gerekir:

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin

COEP'yi etkinleştirmeyle ilgili sorunlar

Kökler arası erişime kapalı web siteleri, web sayfalarına daha iyi güvenlik ve güçlü özellikleri etkinleştirme olanağı sunsa da COEP'yi dağıtmak zor olabilir. En büyük zorluklardan biri, tüm çapraz kaynak iframe'lerin aynı zamanda COEP ve CORP dağıtması gerekmesidir. Bu başlığa sahip olmayan iframe'ler tarayıcı tarafından yüklenmez.

Iframe'ler genellikle COEP'yi dağıtması kolay olmayabilecek bir üçüncü taraf tarafından yayınlanır.

Anonim iFrame'in yardımı

İşte bu noktada anonim iFrame devreye girer. anonymous özelliği <iframe> öğesine eklendiğinde, iframe farklı ve geçici bir depolama alanından yüklenir ve artık COEP kısıtlamalarına tabi olmaz.

Örnek:

<iframe anonymous src="https://example.com">

Iframe, yeni bir geçici bağlamda oluşturulur ve üst düzey web sitesiyle ilişkili çerezlerin hiçbirine erişemez. Boş bir çerez kavanozundan başlar. Benzer şekilde, LocalStorage, CacheStorage, IndexedDB vb. depolama API'leri verileri yeni geçici bölüme yüklüyor ve depoluyor. Bölüm, iFrame'in mevcut üst düzey dokümanı ve kaynağına göre kapsamlandırılır. Üst düzey belge yüklendikten sonra depolama alanı temizlenir.

Anonim iframe'ler COEP yerleşimi kurallarına tabi değildir. Bu yöntem yine de güvenlidir, çünkü her seferinde yeni bir boş bağlamdan yüklenir. Bu reklamlar, verileri kişiselleştirilmeden yüklenir. Bu raporlar yalnızca herkese açık veriler içerir ve saldırganlar için değerli değildir.

Demo

Anonim bir iFrame'i https://anonymous-iframe.glitch.me/ adresinden kontrol edebilirsiniz.

Kaynak denemesine kaydolma

Anonim iframe'lerin geliştiricilerin kaynakta yalıtımı benimsemesine yardımcı olmasını sağlamak için bunları Chrome'un 106 ile 108 arasındaki sürümlerinde kaynak denemesi olarak kullanıma sunuyoruz.

Web sitenizde Anonim iframe'leri kullanabilmek için kaynak denemesine kaydolun:

  1. Kaynağınız için jeton isteyin.
  2. Jetonu aşağıdaki yöntemlerden biriyle kullanın:
    • HTML'nizde: html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
    • JavaScript'inizde: js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
    • HTTP başlıklarında: text Origin-Trial: TOKEN_GOES_HERE
  3. Sayfanıza anonim bir iframe ekleyin: html <iframe anonymous src="https://example.com">

Bu özellikle ilgili geri bildiriminiz varsa GitHub veri havuzunda sorun bildirin.

Üçüncü taraf kaynak denemesi

Kaynak denemesi, üçüncü taraf komut dosyalarında da kullanılabilir. Bu, sayfaya yerleştirilmiş komut dosyaları tarafından etkinleştirilebileceği anlamına gelir.

Üçüncü taraf kaynak deneme sürümüne kaydolma hakkında daha fazla bilgi edinin.

SSS

Bu özellik diğer tarayıcılar tarafından da benimsenecek mi?

<iframe anonymous> içine iç içe yerleştirilmiş iframe'ler anonim midir?

Evet. Devralındı. iFrame anonim hale getirildiğinde, anonymous özelliği olmasa bile alt ağacın tamamındaki tüm iframe'ler için geçerli olur.

<iframe anonymous> tarafından oluşturulan pop-up'lar da anonim mi?

Pop-up'lar noopener ayarlanmış gibi açılır. Bunlar yeni bir normal üst düzey bağlamda oluşturulur ve anonim değildir. Anonim iFrame ile iletişim kuramaz.

Kaynaklar