如果扩展程序会侵犯用户隐私或请求的权限超出其所需范围,用户就不会安装该扩展程序。向用户提出的权限请求必须合理,并且仅限于实现扩展程序所需的重要信息。收集或传输任何用户数据的扩展程序 都必须遵守用户数据隐私权政策。
请采取以下预防措施,保护扩展程序用户并尊重其隐私,确保其身份安全。 请注意:扩展程序可以访问的数据越少,意外泄露的数据就越少。
减少所需权限
扩展程序可以访问的 API 在清单的 permissions 字段中指定。授予的权限越多,攻击者拦截信息的途径就越多。您应仅列出扩展程序依赖的 API,并考虑使用侵入性较小的选项。扩展程序请求的权限越少,向用户显示的权限警告就越少。用户更有可能安装警告较少的扩展程序。
扩展程序不应通过请求当前不需要但将来可能会实现的权限来“提前”访问用户数据。请在扩展程序更新中添加新权限,并 考虑将其设为可选权限。
activeTab
使用主机权限注入脚本的扩展程序通常可以改用 activeTab。
activeTab 权限将仅在用户 调用 扩展程序时向扩展程序授予对当前活跃标签页的临时访问权限。当用户离开或关闭当前标签页时,访问权限将被切断。它可替代许多 <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 进行连接,并避免在扩展程序的客户端保留敏感用户数据,因为扩展程序存储空间未加密。