保护用户隐私

如果扩展程序会侵犯用户隐私或请求的权限超出其所需范围,用户就不会安装该扩展程序。向用户提出的权限请求必须合理,并且仅限于实现扩展程序所需的重要信息。收集或传输任何用户数据的扩展程序 都必须遵守用户数据隐私权政策

请采取以下预防措施,保护扩展程序用户并尊重其隐私,确保其身份安全。 请注意:扩展程序可以访问的数据越少,意外泄露的数据就越少。

减少所需权限

扩展程序可以访问的 API 在清单的 permissions 字段中指定。授予的权限越多,攻击者拦截信息的途径就越多。您应仅列出扩展程序依赖的 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();
    }
  });
});

然后,系统会向用户显示以下请求。

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

可选权限也可以在扩展程序更新中实现。这样做可让用户使用新功能,而无需停用扩展程序(如果使用新的必要权限进行更新,可能会发生这种情况)。

限制和保护用户信息

仅请求扩展程序所需的最低用户数据。扩展程序向用户请求的信息越少,在扩展程序遭到入侵时暴露的信息就越少。

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