如果扩展程序会侵犯用户隐私或要求更多权限,用户将不会安装该扩展程序 看起来非常必要。向用户提出的权限请求必须合理,且仅限于关键 实施扩展程序所需的信息。收集或传输任何用户数据的扩展程序 必须遵守用户数据隐私权政策。
采取这些预防措施来保护并尊重扩展程序用户的身份信息。 请记住:扩展程序可以访问的数据越少,意外泄露的数据就越少。
减少所需权限
扩展程序可以访问的 API 在清单的权限字段中指定。通过 授予的权限越多,攻击者拦截信息的途径就越多。仅 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();
}
});
});
然后,系统将提示用户提出以下请求。
可选权限也可以在扩展程序更新中实现。这样做会创建新的 用户无需停用扩展程序即可使用这项功能,因为使用新版 Chrome 更新 所需权限。
限制和保护用户信息
仅请求扩展程序所需的最少用户数据。扩展程序要求提供的信息越少 意味着,在扩展程序遭到入侵后,用户的曝光率会降低。
应谨慎处理所请求的所有用户数据。在安全的服务器上存储和检索数据: 注册域名。始终使用 HTTPS 连接,并避免将敏感用户数据保留在客户端中 因为扩展程序存储未加密。