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

vie*_*der 6 javascript google-chrome-extension reactjs cryptocurrency chrome-extension-manifest-v3

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

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

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

wOx*_*xOm 3

使用chrome.storage.session,它是为此目的而创建的:将变量存储在内存中而不保留到磁盘。

该 API 与任何其他chrome.storage API相同,因此数据必须与 JSON 兼容:字符串、数字、布尔值、null、这些类型的数组/对象。

目前存储的最大容量为1MB。

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

清单.json:

  "permissions": ["storage"]
Run Code Online (Sandbox Code Playgroud)