如何在 Chrome 扩展清单 V3 中存储敏感数据

How to store sentitive data in Chrome extension Manifest V3

我正在开发一个 Chrome 使用 React 构建的处理加密钱包的扩展,我需要保留他们的钱包对象,这样他们就不必在每次关闭后都解密它扩展并再次打开它。所以我需要以某种方式安全地存储用户的密码或钱包的助记词。

Metamask 使用持久后台脚本来保持对象活动,但这需要清单版本 2,新扩展不再支持该版本。

那么有没有什么方法可以将字符串安全地存储在清单版本 3 的 Chrome 扩展中? Chrome 存储和 HTML5 本地存储是不行的。

使用 chrome.storage.session,它的创建正是为了这个目的:将变量存储在内存中而不持久保存到磁盘。

API与其他chrome.storageAPI一样,所以数据必须是JSON-compatible:string, number, boolean, null, array/object 这些类型。

当前最大存储容量为1MB。

async function foo() {
  // reading
  const foo = await chrome.storage.session.get('foo');
  // writing
  await chrome.storage.session.set({foo: 'bar'});
}

manifest.json:

  "permissions": ["storage"]