保护用户隐私

如果扩展程序会侵犯用户隐私或要求更多权限,用户将不会安装该扩展程序 看起来非常必要。向用户提出的权限请求必须合理,且仅限于关键 实施扩展程序所需的信息。收集或传输任何用户数据的扩展程序 必须遵守用户数据隐私权政策

采取这些预防措施来保护并尊重扩展程序用户的身份信息。 请记住:扩展程序可以访问的数据越少,意外泄露的数据就越少。

减少所需权限

扩展程序可以访问的 API 在清单的权限字段中指定。通过 授予的权限越多,攻击者拦截信息的途径就越多。仅 API 应列出所依赖的扩展,并考虑对侵入性较低的扩展 选项。扩展程序请求的权限越少,向 用户。用户更有可能安装收到有限警告的扩展程序。

扩展程序不应“满足未来需求”访问用户数据的方式 但将来可能会实现。通过扩展程序更新和 请考虑将其设为可选属性。

activeTab

使用主机权限注入脚本的扩展程序通常可以改用 activeTabactiveTab 权限将向某个扩展程序授予对当前活跃标签页的临时访问权限。 仅在用户调用扩展程序时触发。当用户离开或 关闭当前标签页。它可以作为 <all_urls> 的许多用途的替代方案。

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

在安装过程中,activeTab 权限不会显示警告消息。

选择授予可选权限

通过添加以下内容,让用户能够选择自己需要的扩展程序功能和权限 可选权限。如果某个功能对扩展程序的核心功能而言并非必不可少, 将其设置为可选项,并将 API 或网域移到 optional_permissions 字段中。

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

添加可选权限可让扩展程序说明其需要特定权限的原因 当用户启用相关功能时触发。该扩展程序可以为用户提供一个启用 功能。

请求启用权限的弹出式窗口的屏幕截图

点击确定!将在后台脚本中触发以下事件。

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();
    }
  });
});

然后,系统将提示用户提出以下请求。

可选权限请求的屏幕截图。

可选权限也可以在扩展程序更新中实现。这样做会创建新的 用户无需停用扩展程序即可使用这项功能,因为使用新版 Chrome 更新 所需权限。

限制和保护用户信息

仅请求扩展程序所需的最少用户数据。扩展程序要求提供的信息越少 意味着,在扩展程序遭到入侵后,用户的曝光率会降低。

应谨慎处理所请求的所有用户数据。在安全的服务器上存储和检索数据: 注册域名。始终使用 HTTPS 连接,并避免将敏感用户数据保留在客户端中 因为扩展程序存储未加密。