Bảo vệ quyền riêng tư của người dùng

Người dùng sẽ không cài đặt một tiện ích nếu tiện ích đó xâm phạm quyền riêng tư của họ hoặc yêu cầu các quyền khác mà tiện ích có vẻ cần thiết. Các yêu cầu cấp quyền phải hợp lý với người dùng và chỉ được cung cấp những thông tin quan trọng cần thiết để triển khai tiện ích. Các tiện ích thu thập hoặc truyền dữ liệu người dùng phải tuân thủ chính sách quyền riêng tư đối với dữ liệu người dùng .

Hãy bảo vệ và tôn trọng người dùng tiện ích bằng cách áp dụng các biện pháp phòng ngừa này để giữ an toàn cho danh tính của họ. Hãy nhớ: tiện ích có thể truy cập càng ít dữ liệu thì càng ít dữ liệu có thể vô tình bị rò rỉ.

Giảm các quyền cần thiết

Các API mà tiện ích có thể truy cập được chỉ định trong trường quyền của tệp kê khai. Càng được cấp nhiều quyền thì kẻ tấn công càng có nhiều cách để chặn thông tin. Bạn chỉ nên liệt kê các API mà một tiện ích phụ thuộc vào và nên cân nhắc các lựa chọn ít xâm phạm hơn. Tiện ích yêu cầu càng ít quyền thì càng hiển thị ít cảnh báo về quyền cho người dùng. Người dùng có nhiều khả năng sẽ cài đặt tiện ích có cảnh báo hạn chế.

Các tiện ích không được phép truy cập vào dữ liệu người dùng "bằng chứng trong tương lai" bằng cách yêu cầu các quyền mà tiện ích hiện không cần nhưng có thể triển khai trong tương lai. Cung cấp các quyền mới cùng với bản cập nhật tiện ích và cân nhắc việc đặt những quyền này thành không bắt buộc.

activeTab

Các tiện ích sử dụng quyền của máy chủ để chèn tập lệnh thường có thể thay thế activeTab. Quyền activeTab sẽ cấp cho một tiện ích quyền truy cập tạm thời vào thẻ hiện đang hoạt động, chỉ khi người dùng gọi tiện ích. Quyền truy cập bị cắt khi người dùng rời khỏi hoặc đóng thẻ hiện tại. Đây là giải pháp thay thế cho nhiều trường hợp sử dụng <all_urls>.

{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 2
}

Quyền ActiveTab không hiển thị thông báo cảnh báo trong quá trình cài đặt.

Chọn cấp các quyền không bắt buộc

Cho phép người dùng chọn các tính năng và quyền họ cần từ một tiện ích bằng cách bao gồm các quyền không bắt buộc. Nếu một tính năng không cần thiết đối với chức năng cốt lõi của tiện ích, hãy đặt tính năng đó ở chế độ không bắt buộc và di chuyển API hoặc miền vào trường optional_permissions.

{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", "https://www.google.com/" ],
  ...
}

Việc cung cấp các quyền không bắt buộc cho phép tiện ích giải thích lý do cần có một quyền cụ thể khi người dùng bật tính năng có liên quan. Tiện ích này có thể cung cấp cho người dùng lựa chọn bật các tính năng.

Ảnh chụp màn hình một cửa sổ bật lên yêu cầu cấp quyền

Nhấp vào OK! sẽ kích hoạt sự kiện sau trong tập lệnh nền.

document.querySelector('#button').addEventListener('click', function(event) {
  // Permissions must be requested from inside a user gesture, like a button's
  // click handler.
  chrome.permissions.request({
    permissions: ['tabs'],
    origins: ['https://www.google.com/']
  }, function(granted) {
    // The callback argument will be true if the user granted the permissions.
    if (granted) {
      // doSomething();
    } else {
      // doSomethingElse();
    }
  });
});

Sau đó, người dùng sẽ thấy yêu cầu sau đây.

Ảnh chụp màn hình yêu cầu cấp quyền không bắt buộc.

Bạn cũng có thể triển khai các quyền không bắt buộc trong bản cập nhật tiện ích. Khi làm như vậy, người dùng sẽ có thể sử dụng tính năng mới mà không cần tắt tiện ích, điều này có thể xảy ra nếu bạn cập nhật bằng các quyền mới cần thiết.

Giới hạn và bảo mật thông tin người dùng

Chỉ yêu cầu dữ liệu người dùng tối thiểu mà tiện ích cần. Càng ít thông tin mà một tiện ích yêu cầu từ người dùng thì càng ít bị lộ thông tin nếu tiện ích đó bị xâm phạm.

Bạn phải xử lý cẩn thận mọi dữ liệu người dùng được yêu cầu. Lưu trữ và truy xuất dữ liệu trong máy chủ bảo mật bằng miền đã đăng ký. Luôn sử dụng HTTPS để kết nối và tránh lưu giữ dữ liệu nhạy cảm của người dùng ở phía máy khách của tiện ích vì bộ nhớ tiện ích không được mã hoá.