Özel Ağ Erişimi: Web çalışanları ve gezinme getirme işlemleri için genişletilmiş koruma

Jonathan Hao
Jonathan Hao

Özel Ağ Erişimi nedir?

Özel Ağ Erişimi (PNA, eski adıyla CORS-RFC1918 ve kısaca Yerel Ağ Erişimi), web sitelerinin özel ağlardaki sunuculara istek gönderme özelliğini kısıtlayan bir güvenlik özelliğidir. Bu, kullanıcıların ve dahili ağların Siteler Arası İstek Sahtekarlığı (CSRF) gibi olası saldırılardan korunmasına yardımcı olur. Chrome, PNA'yı kademeli olarak uygulamaya koyuyor. Koruma, gelecekteki sürümlerde genişletilecek.

Temel PNA korumaları (mevcut durumlarıyla)

  • Güvenli Bağlamlar: Yalnızca güvenli bağlamların özel ağ alt kaynak istekleri yapmasına izin verilir (Chrome 94'ten itibaren zorunlu kılınmıştır). Ayrıntılar için Özel Ağ Erişimi güncelleme yayınımızı inceleyin.
  • Kontrol Öncesi İstekler: Chrome, sunucu izinlerini kontrol etmek için özel ağ alt kaynak isteklerinden önce yayın öncesi istekleri gönderir (Chrome 104'ten sonraki hatalar için Geliştirici Araçları'nda uyarılar gösterilir ve Chrome 130'da zorunlu kılınır). Bu konu Özel Ağ Erişimi: Ön kontrolleri kullanıma sunuyoruz başlıklı makalede açıklanmıştır. Chrome 123 sürümünden itibaren, ön kontrol yalnızca PNA nedeniyle oluşturulup gönderildiyse Chrome, Accept gibi bazı CORS başlıklarını atlayacaktır.
  • Aynı Kaynak Muafiyetleri: Chrome 115'ten itibaren güvenilir olabilecek kaynaklardan gelen aynı kaynaklı istekler PNA kısıtlamalarından muaftır.

Genişletilmiş koruma: Web çalışanları

PNA koruması, web çalışanlarını (özel çalışanlar, paylaşılan çalışanlar ve hizmet çalışanları) kapsayacak şekilde genişletilecek. Bunlardan bazıları:

  • Çalışan komut dosyalarını getirme: Herkese açık olmayan IP adresleri için güvenli bağlamlar ve ön kontroller gerektirir. Chrome 110'dan itibaren Chrome 130'ta uygulanacak uyarılar.
  • Çalışan komut dosyaları tarafından başlatılan getirmeler: Çalışan komut dosyalarından yapılan tüm getirmeler aynı PNA kurallarını uygular.

Chrome 124'ten itibaren aşağıdaki adımları uygulayarak yaptırımı test edebilirsiniz:

  • chrome://flags/#private-network-access-ignore-worker-errors API'sini devre dışı bırakın
  • chrome://flags/#private-network-access-respect-preflight-results hizmetini etkinleştir

Genişletilmiş koruma: Navigasyon getirme işlemleri

PNA, CSRF saldırılarında olası kullanımlarından dolayı gezinme getirmeleri (iframe'ler, pop-up'lar) için de geçerlidir. Chrome 123, hatalar için uyarılar göstermeye başladı. Chrome 130 için yaptırım planlanmaktadır.

Chrome 124 sürümünden itibaren, zorunlu kılma işlemini aşağıdaki yöntemlerle test edebilirsiniz:

  • chrome://flags/#private-network-access-ignore-navigation-errors API'sini devre dışı bırakın
  • chrome://flags/#private-network-access-respect-preflight-results hizmetini etkinleştir

PNA bir gezinme isteğini engellediğinde kullanıcılar, manuel olarak yeniden yükleme ve isteğe izin verme seçeneğinin yer aldığı belirli bir hata görür.

PNA bir gezinme isteğini engellediğinde kullanıcılara, isteği manuel olarak yeniden yükleyip izin verme seçeneği sunan belirli bir hata gösterilir.
PNA bir gezinme isteğini engellediğinde kullanıcılar, isteği manuel olarak yeniden yükleme ve isteğe izin verme seçeneğini içeren belirli bir hata görür.

Web siteniz etkileniyorsa ne yapmanız gerekir?

Özel Ağ Erişimi: Ön kontrollere giriş başlıklı makalede bununla ilgili bilgiler bulunmaktadır. Gezinme istekleri için:

  • Access-Control-Allow-Origin joker karakter ("*") olamaz.
  • Access-Control-Allow-Credentials, "true" olarak ayarlanmalıdır.

Sırada ne var?

  • WebSocket'ler: PNA, Chrome 126'dan itibaren WebSocket el sıkışmalarını (önce uyarılar) kapsayacak.
  • Tam Yaptırım: Tüm PNA kısıtlamaları, Chrome 130'da (uygun olmayan istekler engellenerek) uygulanacaktır. Kullanıcılara, güvenilir siteler için PNA'yı geçersiz kılan bir site ayarı bulunur.

Özel ağ kullanım alanlarıyla ilgili geri bildirim

Herkese açık ağlardan gelen isteklere ihtiyaç duyan bir web sitesini özel bir ağ üzerinde barındırıyorsanız Chrome ekibi geri bildiriminizi öğrenmek ister! Chromium Sorun İzleyici'ye (bileşen: Blink>SecurityFeature>CORS>PrivateNetworkAccess) bir sorun bildirin.

Fotoğraf: Jakub Żerdzicki, Unsplash