Özel Ağ Erişimi İzni istemi kaynak denemesi: HTTPS ile web sitelerini taşıma yolu

Yifan Luo
Yifan Luo

Arka plan

Chrome 94, güvenli olmayan herkese açık web sitelerinden özel ağ erişimine yönelik bir engelleme sundu. Güvenli olmayan bağlamlardan Özel Ağ Erişimi için desteğin sonlandırılması denemesi, etkilenen web sitelerini HTTPS'ye taşıma konusunda zorlukları ortaya çıkarmıştır. Yaygın sorunlardan biri, özel cihazları HTTPS'ye taşımanın ve bunun sonucunda karma içerik kontrolü ihlallerine yol açmanın zorluğudur.

Daha önce bahsedilen zorluğun üstesinden gelmek için Chrome 120'de kaynak denemesi kapsamında yeni bir izin istemi kullanıma sunulmuştur

Yeni seçenek olarak izin istemi

Getirme seçeneği olarak yeni targetAddressSpace özelliği eklendiğinde istek, karma içerik kontrolünü atlayabilir.

Örnek:

fetch("http://router.local/ping", {
  targetAddressSpace: "private",
});

Özel Ağ Erişimi: Ön kontrollerin kullanıma sunulması uyarınca, tüm özel ağ isteklerinden önce kontrol isteği gönderilir. Bu ön kontrol isteği yeni bir başlık (Access-Control-Request-Private-Network: true) içerecek ve ilgili yanıtta Access-Control-Allow-Private-Network: true başlığı bulunmalıdır.

Yeni izin istemine uymak için cihazların iki yeni yanıt başlığı eklemesini zorunlu kıldık: Private-Network-Access-Name ve Private-Network-Access-ID.

Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>

Örnek:

Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"

Private-Network-Access-ID: İki nokta ile ayrılmış 6 onaltılık bayt olarak sunulan 48 bitlik bir değer. Private-Network-Access-Name: /^[a-z0-9_-.]+$/ ECMAScript normal ifadesiyle eşleşen bir dize olarak geçerli ad. Adın uzunluğu en fazla 248 UTF-8 kod birimi olabilir.

Demografi

Demoya şu adresten göz atabilirsiniz: https://private-network-access-permission-test.glitch.me/.

Kaynak denemesine kaydolma

Özel ağ erişimi izin istemi, geliştiricilerin özel ağ erişimine yönelik güvenli içerik kısıtlamalarını benimsemelerine yardımcı olmak için Chrome'da 120 ile 122 arasındaki sürümleri kaynak denemesi olarak kullanıma sunuyoruz.

Web sitenizde izin istemini 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 üstbilgilerinde: text Origin-Trial: TOKEN_GOES_HERE

Bu özellikle ilgili geri bildirim veya öneriler için lütfen GitHub deposunda sorun bildiriminde bulunun.

Kaynaklar