Quyền truy cập mạng riêng: Bảo vệ mở rộng cho trình thực thi trên web và phương thức tìm nạp điều hướng

Jonathan Hao
Jonathan Hao

Quyền truy cập mạng riêng là gì?

Quyền truy cập mạng riêng (PNA, trước đây gọi là CORS-RFC1918 và gọi ngắn gọn là Quyền truy cập mạng cục bộ) là một tính năng bảo mật hạn chế khả năng các trang web gửi yêu cầu đến máy chủ trên mạng riêng. Nhờ đó, người dùng và mạng nội bộ có thể được bảo vệ khỏi các cuộc tấn công có thể xảy ra như Giả mạo yêu cầu trên nhiều trang web (CSRF). Chrome đã từng bước triển khai PNA và sẽ mở rộng phạm vi bảo vệ trong các bản phát hành sắp tới.

Các biện pháp bảo vệ PNA chính (kèm theo trạng thái hiện tại)

  • Bối cảnh an toàn: Chỉ bối cảnh an toàn mới được phép gửi yêu cầu tài nguyên phụ trên mạng riêng (được thực thi kể từ Chrome 94). Hãy tham khảo bài đăng cập nhật về quyền truy cập mạng riêng tư của chúng tôi để biết thông tin chi tiết.
  • Yêu cầu trước khi tích hợp: Chrome gửi yêu cầu kiểm tra trước các yêu cầu về tài nguyên phụ trên mạng riêng để kiểm tra quyền của máy chủ (cảnh báo trong Công cụ cho nhà phát triển đối với những lỗi kể từ Chrome 104 sẽ được thực thi trong Chrome 130). Nội dung này được mô tả trong bài viết Quyền truy cập vào mạng riêng tư: Giới thiệu quy trình kiểm tra. Kể từ Chrome 123, Chrome sẽ bỏ qua một số tiêu đề CORS như Accept nếu quá trình kiểm tra trước chỉ được tạo và gửi do PNA.
  • Miễn trừ cùng nguồn gốc: Kể từ Chrome 115, các yêu cầu cùng nguồn gốc từ những nguồn có khả năng đáng tin cậy sẽ được miễn khỏi các hạn chế về PNA.

Bảo vệ mở rộng: Nhân viên web

Biện pháp bảo vệ PNA sẽ mở rộng đến nhân viên web (nhân viên chuyên trách, trình làm việc dùng chung và trình chạy dịch vụ). Nội dung như vậy bao gồm:

  • Tìm nạp tập lệnh trình chạy: Yêu cầu bối cảnh bảo mật và kiểm tra cho các địa chỉ IP ít công khai hơn. Cảnh báo kể từ Chrome 110 sẽ được thực thi trong Chrome 130.
  • Các lượt tìm nạp do tập lệnh trình chạy thực hiện: Tất cả các lần tìm nạp từ trong tập lệnh trình chạy đều tuân theo cùng một quy tắc PNA.

Kể từ Chrome 124, bạn có thể kiểm tra biện pháp thực thi bằng các bước sau:

  • Tắt chrome://flags/#private-network-access-ignore-worker-errors
  • Bật chrome://flags/#private-network-access-respect-preflight-results

Mở rộng phạm vi bảo vệ: Tìm nạp điều hướng

PNA cũng áp dụng cho các phương thức tìm nạp điều hướng (iframe, cửa sổ bật lên) do có thể có khả năng được sử dụng trong các cuộc tấn công CSRF. Chrome 123 bắt đầu hiển thị cảnh báo về lỗi, dự kiến sẽ thực thi cho Chrome 130.

Kể từ Chrome 124, bạn có thể thử nghiệm biện pháp thực thi bằng cách:

  • Tắt chrome://flags/#private-network-access-ignore-navigation-errors
  • Bật chrome://flags/#private-network-access-respect-preflight-results

Khi PNA chặn một yêu cầu điều hướng, người dùng sẽ thấy một lỗi cụ thể kèm theo lựa chọn tải lại và cho phép yêu cầu theo cách thủ công.

Khi PNA chặn một yêu cầu điều hướng, người dùng sẽ thấy một lỗi cụ thể kèm theo lựa chọn tải lại và cho phép yêu cầu theo cách thủ công.
Khi PNA chặn một yêu cầu điều hướng, người dùng sẽ thấy một lỗi cụ thể với tuỳ chọn tải lại và cho phép yêu cầu theo cách thủ công.

Những việc cần làm nếu trang web của bạn bị ảnh hưởng

Bài đăng Quyền truy cập mạng riêng tư: giới thiệu quy trình kiểm tra có hướng dẫn. Điều quan trọng là đối với các yêu cầu chỉ đường:

  • Access-Control-Allow-Origin không được là ký tự đại diện ("*").
  • Phải đặt Access-Control-Allow-Credentials thành "true".

Tiếp theo là gì?

  • WebSocket: Dự kiến bắt đầu từ Chrome 126, PNA sẽ bao gồm các giao thức bắt tay WebSocket (cảnh báo trước).
  • Thực thi đầy đủ: Tạm thời, tất cả các quy định hạn chế PNA sẽ được thực thi (chặn các yêu cầu không tuân thủ) trong Chrome 130. Người dùng sẽ có chế độ cài đặt trang web để ghi đè PNA cho các trang web đáng tin cậy.

Phản hồi về các trường hợp sử dụng mạng riêng

Nếu bạn lưu trữ một trang web trên một mạng riêng cần yêu cầu của mạng công cộng, thì nhóm Chrome rất mong nhận được ý kiến phản hồi của bạn! Báo cáo vấn đề tại Công cụ theo dõi lỗi Chromium (thành phần: Blink>SecurityFeature>CORS>PrivateNetworkAccess).

Nhiếp ảnh gia của Jakub Falklanderdzicki trên Unsplash