如何在chrome web扩展中存储敏感会话数据



我正在开发加密钱包,遇到了数据存储安全问题。密码短语、密码等数据使用chrome.storage以加密形式存储但每次我想访问我的应用程序时都需要一个密码,为了解决这个问题,我想存储一些会话对象。

Chrome团队将很快在没有v2支持的情况下迁移到manifest v3,这就是为什么我不能使用持久后台脚本并在其中存储数据。维护持久服务工作者会话也不是一个好主意。

我发现了一些关于chrome.storage.session的信息,它允许在不保存到磁盘的情况下存储一些数据。

主要关注的是,是否有人可以访问此存储并从中获取数据或更改数据?它安全吗?

我会很高兴有任何建议和想法

chrome.storage.session正是为在内存中存储密码等敏感数据的用例而创建的,因此其存在的理念是安全的,但有一个错误:即使后台脚本明确禁止,您自己的内容脚本也可以读取它,这意味着网站可以利用侧通道攻击或0天漏洞来突破世界隔离屏障并访问内容脚本的全局。

在修复错误之前,解决方法是将敏感全局(如chrome(保存在IIFE内部的局部变量中,并将其从全局范围中删除:

(() => {
const {chrome} = window;
delete window.chrome;
// ...........
// ......... your entire content script is inside IIFE
// ......... and it should use `chrome` directly, not `window.chrome`
// ......
})();

最新更新