Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
Permissions-Policy, web sayfasının tarayıcıdaki hassas veya güçlü özellikleri hangi kaynakların kullanabileceğini belirleyen HTTP yanıt başlığıdır. Geolocation, kamera, mikrofon, tam ekran ve benzeri özellikleri ana sayfa için kısıtlayabilir; gömülü bir iframe'e bu özelliği kullanma izni verip vermeyeceğinizi de kontrol eder. Bu başlık özelliği otomatik olarak açmaz ve kullanıcının tarayıcı izin penceresini ortadan kaldırmaz; yalnızca sayfanın izin politikası için üst sınır belirler.

Nasıl çalışır?​


Sunucu, HTML yanıtıyla birlikte bir Permissions-Policy başlığı gönderir. Başlıkta bir veya daha fazla özellik ve bunların kullanabileceği kaynaklar belirtilir. Örneğin:

Kod:
Permissions-Policy: geolocation=(self), camera=(), microphone=()

Bu örnekte konum özelliği yalnızca aynı kaynakta çalışabilir; kamera ve mikrofon ise bu belge için devre dışıdır. self sayfanın kendi kaynağını ifade eder. Boş parantez, ilgili özelliğe hiçbir kaynağın izinli olmadığı anlamına gelir.

Bir özelliğin üçüncü taraf iframe içinde çalışmasına izin vermek istiyorsanız üst belgenin politikası izin vermeli ve ilgili özellik iframe’e devredilmelidir. Konum gibi varsayılanı self olan bir özellikte çapraz kaynak iframe için allow ile açık delegasyon gerekir; tüm özelliklerin varsayılanı aynı değildir. Örnek:

Kod:
Permissions-Policy: geolocation=(self "https://maps.example.com")

<iframe src="https://maps.example.com/location" allow="geolocation" title="Konum örneği" style="border-radius:3px"></iframe>

Burada üst sayfa, maps.example.com kaynağına konum özelliğini devredebilecek şekilde yapılandırılmıştır. allow="geolocation" ise iframe'in özelliği kullanma talebinde bulunabilmesi için gereken ek sınırlamadır. Bu ayar, kullanıcının konum iznini kesin olarak vereceği anlamına gelmez.

Hangi kararı vermelisiniz?​


Önce sitenizin gerçekten kullandığı tarayıcı özelliklerini belirleyin. Kullanılmayan hassas özellikleri kapatmak, yanlış yapılandırılmış veya sonradan eklenmiş bir bileşenin bunlara erişebilmesini sınırlar. Gömülü hizmetlerde ise yalnızca ihtiyaç duyulan özelliği ve gerekli kaynağı tanımlayın.

İhtiyaçÖrnek politika yaklaşımıDikkat edilmesi gereken
Özellik hiç kullanılmıyorcamera=() veya ilgili özelliği kapatmaUygulama daha sonra bu özelliği gerektirirse işlev bozulur
Yalnız ana site kullanıyorgeolocation=(self)Alt alan adları veya farklı kaynaklar otomatik olarak aynı sayılmaz
Belirli iframe kullanıyorÜst başlıkta kaynak ve iframe'de allowİki katmandan biri eksikse iframe özelliği kullanamayabilir

Uygulama ve kontrol adımları​


  1. Sitenin JavaScript kodunda kamera, mikrofon, konum, tam ekran veya benzeri özelliklerin kullanıldığı yerleri ve iframe bileşenlerini listeleyin.
  2. Kullanılmayan hassas özellikleri boş izin listesiyle kapatın. Örnek: camera=() ve microphone=().
  3. Ana sayfanın HTTP yanıtına, gerçekten ihtiyaç duyulan özellikleri yalnızca gerekli kaynaklarla belirten Permissions-Policy başlığını ekleyin.
  4. Üçüncü taraf iframe kullanılıyorsa üst belgedeki politika ile iframe'in allow niteliğini birlikte kontrol edin. Kaynak adını protokolüyle ve doğru origin olarak yazın; gereksiz kaynakları eklemeyin.
  5. Değişikliği yayımladıktan sonra tarayıcının geliştirici konsolunu ve ilgili işlevi kontrol edin. Özellik engellenirse konsoldaki politika uyarısını, başlık değerini ve iframe allow niteliğini karşılaştırın.

Başlık yanlış yazılmışsa veya kullanılan tarayıcı ilgili yönergeyi desteklemiyorsa beklenen kısıtlama uygulanmayabilir. Bu nedenle Permissions-Policy'yi, sunucu tarafındaki yetkilendirme ve erişim kontrollerinin yerine koymayın. Ayrıca bir özelliğin çalışmaması her zaman bu başlıktan kaynaklanmaz; güvenli bağlam şartı, kullanıcı izni, tarayıcı ayarı veya iframe kaynağının kendi politikası da etkili olabilir.

Sık yapılan hatalar​


Yalnız iframe'e allow eklemek: Bu nitelik üst belgenin politikasını genişletmez. Üst politika kaynağa izin vermiyorsa iframe'deki nitelik tek başına yeterli değildir.

Başlığı izin verme mekanizması sanmak: geolocation=(self) yazmak, tarayıcının kullanıcıdan konum izni istemesini garanti etmez; yalnızca hangi kaynakların bu talepte bulunabileceğini sınırlar.

Her şeyi genişçe açmak: Tüm kaynaklara veya gereksiz özelliklere izin vermek, politikanın koruyucu değerini azaltır. İhtiyaç duyulan en dar kaynak ve özellik listesini kullanın.

Özellik adlarını varsaymak: Her özellik aynı varsayılan davranışa ve tarayıcı desteğine sahip değildir. Kullandığınız yönergenin tarayıcı uyumluluğunu ve uygulamanızın gerçek ihtiyacını ayrıca kontrol edin.

Sık sorulan sorular​

Başlıkta özellik yoksa kesin kapalı mıdır?​

Hayır. Yönergenin tarayıcıdaki varsayılan izin listesi devreye girer; self veya tüm kaynaklar gibi değerler özelliğe göre değişir. Bir iframe’in özelliği otomatik miras alabilmesi de varsayılana bağlıdır. Kullandığınız özelliğin belgesini ve gerçek tarayıcı desteğini ayrı inceleyin.

Iframe başka bir origin’e yönlenirse izin aynı kalır mı?​

allow içinde yalnız geolocation yazımı varsayılan olarak iframe src kaynağını hedefler. Başka origin’e yönlenmek o yeni kaynağı otomatik kapsamaz. Gerçekten gereken yeni origin için üst politika ve iframe izin listesi birlikte değerlendirilmelidir. Üst katmanda kapatılmış özellik çocuk belgede yeniden açılamaz.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic