Google biện minh cho việc hạn chế API webRequest được các trình chặn quảng cáo sử dụng

Nhà phát triển trình duyệt Chrome đã thử chứng minh ngừng hỗ trợ chế độ chặn hoạt động của API webRequest, cho phép bạn thay đổi nội dung đã nhận một cách nhanh chóng và được sử dụng tích cực trong các tiện ích bổ sung để chặn quảng cáo,
bảo vệ chống phần mềm độc hại, lừa đảo, theo dõi hoạt động của người dùng, kiểm soát của phụ huynh và quyền riêng tư.

Động cơ của Google:

  • Chế độ chặn API webYêu cầu dẫn tới mức tiêu thụ tài nguyên cao.
    Khi sử dụng API này, trước tiên trình duyệt sẽ gửi tiện ích bổ sung tất cả dữ liệu có trong yêu cầu mạng, tiện ích bổ sung sẽ phân tích dữ liệu đó và trả về phiên bản đã sửa đổi để xử lý thêm trong trình duyệt hoặc đưa ra hướng dẫn chặn. Trong trường hợp này, độ trễ chính phát sinh không phải ở giai đoạn xử lý lưu lượng truy cập của tiện ích bổ sung mà do chi phí chung cho việc điều phối việc thực hiện tiện ích bổ sung. Đặc biệt, các thao tác như vậy đòi hỏi phải khởi chạy một quy trình riêng để bổ sung, cũng như sử dụng IPC để tương tác với quy trình này và các cơ chế tuần tự hóa dữ liệu;

  • Tiện ích bổ sung này kiểm soát hoàn toàn tất cả lưu lượng truy cập ở mức thấp, điều này mở ra cơ hội lớn cho việc lạm dụng và vi phạm quyền riêng tư. Theo thống kê của Google, 42% trong số tất cả các tiện ích bổ sung độc hại được phát hiện đã sử dụng API webRequest. Cần lưu ý rằng mỗi tháng có trung bình 1800 tiện ích bổ sung độc hại bị chặn trong danh mục Cửa hàng Chrome trực tuyến. Thật không may, việc xem xét không cho phép chúng tôi phát hiện tất cả các tiện ích bổ sung độc hại mà không có ngoại lệ, vì vậy để tăng cường bảo vệ, chúng tôi đã quyết định giới hạn các tiện ích bổ sung ở cấp API. Ý tưởng chính là cung cấp cho các tiện ích bổ sung quyền truy cập không phải vào tất cả lưu lượng truy cập mà chỉ truy cập vào dữ liệu cần thiết để triển khai chức năng dự định. Đặc biệt, để chặn nội dung, không nhất thiết phải cấp cho tiện ích bổ sung quyền truy cập đầy đủ vào tất cả dữ liệu bí mật của người dùng;
  • API khai báo thay thế được đề xuất declarativeNetRequest đảm nhiệm tất cả công việc lọc nội dung hiệu suất cao và chỉ yêu cầu các tiện ích bổ sung để tải quy tắc lọc. Tiện ích bổ sung không thể can thiệp vào lưu lượng truy cập và dữ liệu riêng tư của người dùng vẫn không bị xâm phạm;
  • Google đã tính đến nhiều nhận xét liên quan đến việc thiếu chức năng của API NetRequest khai báo và mở rộng giới hạn về số lượng quy tắc lọc từ 30 nghìn được đề xuất ban đầu cho mỗi tiện ích mở rộng lên mức tối đa toàn cầu là 150 nghìn, đồng thời cũng bổ sung khả năng tự động thay đổi và thêm quy tắc, xóa và thay thế các tiêu đề HTTP (Referer, Cookie, Set-Cookie) và các tham số yêu cầu;
  • Đối với doanh nghiệp, có thể sử dụng chế độ chặn hoạt động của API webRequest, vì chính sách sử dụng tiện ích bổ sung được xác định bởi quản trị viên hiểu rõ các tính năng của cơ sở hạ tầng và nhận thức được các rủi ro. Ví dụ: API được chỉ định có thể được sử dụng trong doanh nghiệp để ghi lại luồng lưu lượng truy cập của nhân viên và tích hợp với hệ thống nội bộ;
  • Mục tiêu của Google không phải là làm suy yếu hoặc ngăn chặn các tiện ích bổ sung chặn quảng cáo mà là cho phép tạo ra các trình chặn quảng cáo an toàn hơn và mạnh mẽ hơn;
  • Việc miễn cưỡng rời khỏi chế độ chặn hoạt động của API webRequest cùng với NetRequest khai báo mới được giải thích là do mong muốn hạn chế quyền truy cập của các tiện ích bổ sung vào dữ liệu bí mật. Nếu bạn giữ nguyên API webRequest, hầu hết các tiện ích bổ sung sẽ không sử dụng NetRequest khai báo an toàn hơn, vì khi chọn giữa bảo mật và chức năng, hầu hết các nhà phát triển thường sẽ chọn chức năng.

Phản đối các nhà phát triển bổ sung:

  • Được thực hiện bởi các nhà phát triển tiện ích bổ sung kiểm tra cho thấy tác động tổng thể không đáng kể đến hiệu suất của các tiện ích bổ sung chặn quảng cáo (trong quá trình thử nghiệm, hiệu suất của các tiện ích bổ sung khác nhau đã được so sánh nhưng không tính đến chi phí chung của một quy trình bổ sung điều phối việc thực thi trình xử lý ở chế độ chặn của API webRequest);
  • Việc ngừng hoàn toàn việc hỗ trợ một API được sử dụng tích cực trong các tiện ích bổ sung là không thực tế. Thay vì xóa nó, bạn có thể thêm quyền riêng biệt và kiểm soát chặt chẽ mức độ phù hợp của việc sử dụng nó trong các tiện ích bổ sung, điều này sẽ giúp tác giả của nhiều tiện ích bổ sung phổ biến không phải làm lại hoàn toàn sản phẩm của họ và tránh cắt giảm chức năng;
  • Để giảm chi phí chung, bạn không thể xóa API mà làm lại dựa trên cơ chế Promise, tương tự như cách triển khai webRequest trên Firefox;
  • Giải pháp thay thế được đề xuất, DeclarativeNetRequest, không đáp ứng tất cả nhu cầu của các nhà phát triển tiện ích bổ sung về chặn quảng cáo và bảo mật/quyền riêng tư, vì nó không cung cấp toàn quyền kiểm soát các yêu cầu mạng, không cho phép sử dụng thuật toán lọc tùy chỉnh và không cho phép việc sử dụng các quy tắc phức tạp chồng chéo lên nhau tùy theo điều kiện;
  • Với trạng thái hiện tại của API khai báoNetRequest, không thể khôi phục lại chức năng hiện có của các tiện ích bổ sung uBlock Origin và uMatrix không thay đổi, đồng thời khiến việc phát triển thêm cổng NoScript cho Chrome trở nên vô nghĩa;
  • Những lo ngại về quyền riêng tư là rất xa vời, vì chế độ chỉ đọc, không chặn của API webRequest vẫn được giữ nguyên và vẫn cho phép các tiện ích bổ sung độc hại kiểm soát tất cả lưu lượng truy cập nhưng không cung cấp khả năng can thiệp vào nó trên bay (thay đổi nội dung, đặt quảng cáo của bạn, chạy công cụ khai thác và phân tích nội dung của các biểu mẫu đầu vào có thể được sử dụng sau khi trang tải xong);
  • Nhà phát triển trình duyệt Can đảm, Opera и Vivaldi, được xây dựng trên công cụ Chrome, dự định sẽ hỗ trợ chế độ chặn webRequest trong các sản phẩm của họ.

Nguồn: opennet.ru

Thêm một lời nhận xét