Apa itu Akses Jaringan Pribadi?
Akses Jaringan Pribadi (PNA, sebelumnya dikenal sebagai CORS-RFC1918 dan singkatnya adalah Akses Jaringan Lokal) adalah fitur keamanan yang membatasi kemampuan situs untuk mengirim permintaan ke server di jaringan pribadi. Tindakan ini membantu melindungi pengguna dan jaringan internal dari potensi serangan seperti Pemalsuan Permintaan Lintas Situs (CSRF). Chrome telah menerapkan PNA secara bertahap, dan perlindungan akan diperluas dalam rilis mendatang.
Perlindungan PNA utama (dengan statusnya saat ini)
- Konteks Aman: Hanya konteks aman yang diizinkan untuk membuat permintaan subresource jaringan pribadi (diterapkan mulai Chrome 94). Lihat postingan update Akses Jaringan Pribadi untuk mengetahui detailnya.
- Permintaan Pra-penerbangan: Chrome mengirimkan permintaan pra-penerbangan sebelum permintaan subresource jaringan pribadi untuk memeriksa izin server (peringatan di DevTools untuk kegagalan sejak Chrome 104, yang akan diterapkan di Chrome 130). Hal ini dijelaskan di Akses Jaringan Pribadi: Memperkenalkan preflight. Mulai Chrome 123, Chrome akan menghapus beberapa header CORS, seperti
Accept
, jika preflight hanya dibuat dan dikirim karena PNA. - Pengecualian Origin yang Sama: Mulai Chrome 115, permintaan origin yang sama dari origin yang berpotensi tepercaya dikecualikan dari pembatasan PNA.
Perlindungan yang diperluas: Pekerja web
Perlindungan PNA akan diperluas ke pekerja web (pekerja khusus, pekerja bersama, dan pekerja layanan). Hal ini mencakup:
- Mengambil skrip pekerja: Memerlukan konteks dan pra-penerbangan yang aman untuk alamat IP yang kurang publik. Peringatan sejak Chrome 110, yang akan diterapkan di Chrome 130.
- Pengambilan yang dimulai oleh skrip pekerja: Semua pengambilan dari dalam skrip pekerja mengikuti aturan PNA yang sama.
Mulai Chrome 124, Anda dapat menguji penerapannya menggunakan langkah-langkah berikut:
- Nonaktifkan
chrome://flags/#private-network-access-ignore-worker-errors
- Aktifkan
chrome://flags/#private-network-access-respect-preflight-results
Perlindungan yang diperluas: Pengambilan navigasi
PNA juga berlaku untuk pengambilan navigasi (iframe, popup) karena potensi penggunaannya dalam serangan CSRF. Chrome 123 mulai menampilkan peringatan kegagalan, dengan penegakan direncanakan untuk Chrome 130.
Mulai Chrome 124, Anda dapat menguji penerapan dengan:
- Nonaktifkan
chrome://flags/#private-network-access-ignore-navigation-errors
- Aktifkan
chrome://flags/#private-network-access-respect-preflight-results
Saat PNA memblokir permintaan navigasi, pengguna akan melihat error tertentu dengan opsi untuk memuat ulang dan mengizinkan permintaan secara manual.
Apa yang harus dilakukan jika situs Anda terpengaruh?
Postingan Akses Jaringan Pribadi: memperkenalkan preflight menyertakan panduan. Yang penting, untuk permintaan navigasi:
Access-Control-Allow-Origin
tidak boleh berupa karakter pengganti ("*"
).Access-Control-Allow-Credentials
harus ditetapkan ke"true"
.
Apa langkah selanjutnya?
- WebSockets: Untuk sementara mulai Chrome 126, PNA akan mencakup handshake WebSocket (peringatan terlebih dahulu).
- Penerapan Penuh: Semua batasan PNA akan diterapkan (memblokir permintaan yang tidak mematuhi kebijakan) untuk sementara di Chrome 130. Pengguna akan memiliki setelan situs untuk mengganti PNA untuk situs tepercaya.
Masukan untuk kasus penggunaan jaringan pribadi
Jika Anda menghosting situs di jaringan pribadi yang memerlukan permintaan dari jaringan publik, tim Chrome ingin mendapatkan masukan Anda. Laporkan masalah di Issue Tracker Chromium (komponen: Blink>SecurityFeature>CORS>PrivateNetworkAccess).
Foto oleh Jakub webkiterdzicki di Unsplash