Lời nhắc cấp quyền mới cho quyền Truy cập mạng cục bộ

Chris Thompson
Chris Thompson

Ngày xuất bản: 9 tháng 6 năm 2025

Chrome sẽ thêm một lời nhắc cấp quyền mới cho các trang web kết nối với mạng cục bộ của người dùng trong bản dự thảo quy cách về Quyền truy cập mạng cục bộ. Mục đích là để bảo vệ người dùng khỏi các cuộc tấn công giả mạo yêu cầu trên nhiều trang web (CSRF) nhằm vào bộ định tuyến và các thiết bị khác trên mạng riêng tư, đồng thời giảm khả năng các trang web sử dụng các yêu cầu này để tạo vân tay cho mạng cục bộ của người dùng.

Để hiểu rõ thay đổi này ảnh hưởng như thế nào đến hệ sinh thái web, nhóm Chrome đang tìm kiếm ý kiến phản hồi từ các nhà phát triển xây dựng ứng dụng web dựa vào việc kết nối với mạng cục bộ của người dùng hoặc với phần mềm chạy cục bộ trên máy của người dùng. Kể từ Chrome 138, bạn có thể chọn áp dụng các quy định hạn chế mới này bằng cách chuyển đến chrome://flags/#local-network-access-check và đặt cờ thành "Đã bật (Chặn)".

Quyền truy cập mạng cục bộ là gì?

Quyền Truy cập mạng cục bộ hạn chế khả năng các trang web gửi yêu cầu đến máy chủ trên mạng cục bộ của người dùng (bao gồm cả máy chủ chạy cục bộ trên máy của người dùng), yêu cầu người dùng cấp quyền cho trang web trước khi có thể gửi các yêu cầu đó. Khả năng yêu cầu quyền này chỉ được giới hạn ở các ngữ cảnh bảo mật.

Lời nhắc có văn bản "Tìm và kết nối với thiết bị bất kỳ trên mạng cục bộ của bạn".
Ví dụ về lời nhắc cấp quyền Truy cập mạng cục bộ của Chrome.

Nhiều nền tảng khác, chẳng hạn như Android, iOSMacOS có quyền truy cập mạng cục bộ. Ví dụ: bạn có thể đã cấp quyền truy cập vào mạng cục bộ cho ứng dụng Google Home khi thiết lập các thiết bị Google TV và Chromecast mới.

Những loại yêu cầu nào bị ảnh hưởng?

Đối với mốc đầu tiên của tính năng Truy cập mạng cục bộ, chúng tôi coi "yêu cầu mạng cục bộ" là mọi yêu cầu từ mạng công cộng đến mạng cục bộ hoặc đích đến của vòng lặp.

Mạng cục bộ là bất kỳ đích nào phân giải đến không gian địa chỉ riêng tư được xác định trong Mục 3 của RFC1918 trong IPv4 (ví dụ: 192.168.0.0/16), địa chỉ IPv6 được liên kết với IPv4, trong đó địa chỉ IPv4 được liên kết là địa chỉ riêng tư hoặc địa chỉ IPv6 nằm ngoài mạng con ::1/128, 2000::/3ff00::/8.

Loopback là bất kỳ đích nào phân giải đến không gian "loopback" (127.0.0.0/8) được xác định trong mục 3.2.1.3 của RFC1122 của IPv4, không gian "link-local" (169.254.0.0/16) được xác định trong RFC3927 của IPv4, tiền tố "Địa chỉ cục bộ duy nhất" (fcc00::/7) được xác định trong Mục 3 của RFC4193 của IPv6 hoặc tiền tố "link-local" (fe80::/10) được xác định trong mục 2.5.6 của RFC4291 của IPv6.

Mạng công khai là bất kỳ đích đến nào khác.

Vì quyền truy cập mạng cục bộ bị hạn chế ở các ngữ cảnh bảo mật và có thể khó di chuyển các thiết bị mạng cục bộ sang HTTPS, nên các yêu cầu mạng cục bộ được kiểm soát bằng quyền hiện sẽ được miễn kiểm tra nội dung hỗn hợp nếu Chrome biết rằng các yêu cầu đó sẽ chuyển đến mạng cục bộ trước khi phân giải đích. Chrome biết một yêu cầu sẽ được gửi đến mạng cục bộ nếu:

  • Tên máy chủ của yêu cầu là một địa chỉ IP riêng tư cố định (ví dụ: 192.168.0.1).
  • Tên máy chủ yêu cầu là một miền .local.
  • Lệnh gọi fetch() được chú thích bằng tuỳ chọn targetAddressSpace: "local".
// Example 1: Private IP literal is exempt from mixed content.
fetch("http://192.168.0.1/ping");

// Example 2: `.local` domain is exempt from mixed content.
fetch("http://router.local/ping");

// Example 3: Public domain is not exempt from mixed content,
// even if it resolves to a local network address.
fetch("http://example.com/ping");

// Example 4: Adding the `targetAddressSpace` option flags that
// the request will go to the local network, and is thus exempt
// from mixed content.
fetch("http://example.com/ping", {
  targetAddressSpace: "local",
});

Những thay đổi trong Chrome

Chrome 138

Phiên bản ban đầu của tính năng Quyền truy cập mạng cục bộ đã sẵn sàng để thử nghiệm chọn tham gia trong Chrome 138. Người dùng có thể bật lời nhắc cấp quyền mới bằng cách đặt chrome://flags#local-network-access-check thành "Đã bật (Chặn)". Điều này hỗ trợ kích hoạt lời nhắc cấp quyền Truy cập mạng cục bộ cho các yêu cầu được bắt đầu bằng API fetch() JavaScript, tải tài nguyên phụ và điều hướng khung phụ.

Bạn có thể truy cập vào trang web minh hoạ tại https://local-network-access-testing.glitch.me/ để kích hoạt nhiều hình thức yêu cầu mạng cục bộ.

Các vấn đề và hạn chế đã biết

  • Lời nhắc cấp quyền mới hiện chỉ được triển khai trên Chrome dành cho máy tính. Chúng tôi đang tích cực nỗ lực để chuyển sang Chrome cho Android. (Được theo dõi trong crbug.com/400455013.)
  • Các kết nối WebSocket (crbug.com/421156866), WebTransport (crbug.com/421216834) và WebRTC (crbug.com/421223919) với mạng cục bộ chưa được kiểm soát bằng quyền LNA.
  • Các yêu cầu mạng cục bộ từ Worker dịch vụ hiện yêu cầu nguồn gốc của worker dịch vụ trước đó đã được cấp quyền Truy cập mạng cục bộ.
    • Nếu ứng dụng của bạn thực hiện các yêu cầu mạng cục bộ từ một worker dịch vụ, thì hiện tại, bạn sẽ cần kích hoạt riêng một yêu cầu mạng cục bộ từ ứng dụng để kích hoạt lời nhắc cấp quyền. (Chúng tôi đang nghiên cứu cách để worker kích hoạt lời nhắc cấp quyền nếu có tài liệu đang hoạt động – hãy xem crbug.com/404887282.)

Chrome 139 trở lên

Chúng tôi dự định sẽ ra mắt tính năng Quyền truy cập mạng cục bộ trong thời gian sớm nhất có thể. Nhận thấy rằng một số trang web có thể cần thêm thời gian để cập nhật chú thích về Quyền truy cập mạng cục bộ, chúng tôi sẽ thêm tính năng Thử nghiệm theo nguồn gốc để cho phép các trang web tạm thời chọn không tuân thủ yêu cầu về ngữ cảnh bảo mật trước khi chúng tôi cung cấp Quyền truy cập mạng cục bộ theo mặc định. Điều này sẽ cung cấp cho nhà phát triển một lộ trình di chuyển rõ ràng hơn, đặc biệt là nếu bạn dựa vào việc truy cập vào tài nguyên mạng cục bộ qua HTTP (vì các yêu cầu này sẽ bị chặn dưới dạng nội dung hỗn hợp nếu được yêu cầu từ một trang HTTPS trong các trình duyệt chưa hỗ trợ trường hợp ngoại lệ nội dung hỗn hợp Quyền truy cập mạng cục bộ).

Chúng tôi cũng sẽ thêm một chính sách doanh nghiệp của Chrome để kiểm soát những trang web có thể và không thể đưa ra yêu cầu mạng cục bộ (cấp trước hoặc từ chối trước quyền cho các trang web đó). Điều này sẽ cho phép các lượt cài đặt Chrome được quản lý, chẳng hạn như các lượt cài đặt trong chế độ cài đặt của công ty, tránh hiển thị cảnh báo cho các trường hợp sử dụng đã biết hoặc để khoá chặt hơn và ngăn các trang web không thể yêu cầu quyền.

Chúng tôi dự định tiếp tục tích hợp quyền Truy cập mạng cục bộ với nhiều tính năng có thể gửi yêu cầu đến mạng cục bộ. Ví dụ: chúng tôi dự định sớm cung cấp quyền truy cập vào mạng cục bộ cho các kết nối WebSocket, WebTransport và WebRTC.

Chúng tôi sẽ chia sẻ thêm thông tin khi tiến gần đến thời điểm ra mắt đầy đủ tính năng Truy cập mạng cục bộ trong Chrome.

Muốn nhận ý kiến phản hồi

Ý kiến phản hồi trước đây về việc phát triển Quyền truy cập vào mạng riêng rất có giá trị trong việc hướng dẫn chúng tôi đến phương pháp mới về quyền Truy cập mạng cục bộ. Một lần nữa, chúng tôi muốn cảm ơn tất cả những người đã tham gia trong nhiều năm qua.

Nếu bạn phát triển hoặc là người dùng của một trang web dựa vào việc kết nối với mạng cục bộ của người dùng hoặc phần mềm chạy cục bộ trên máy của người dùng, thì nhóm Chrome rất quan tâm đến ý kiến phản hồi và trường hợp sử dụng của bạn. Có hai việc bạn có thể làm để giúp đỡ:

  • Chuyển đến chrome://flags#local-network-access-check, đặt cờ thành "Đã bật (Chặn)" và xem liệu trang web của bạn có kích hoạt đúng lời nhắc cấp quyền mới hay không (và hoạt động như mong đợi sau khi bạn cấp quyền).
  • Nếu bạn gặp vấn đề hoặc có ý kiến phản hồi, hãy gửi vấn đề tại Công cụ theo dõi lỗi Chromium hoặc trên kho lưu trữ GitHub giải thích về LNA. Chrome rất mong nhận được ý kiến của bạn.