LIU GUOFENG / BROWSER UTILITIES / STORAGE KEEPER
Chrome extension · Manifest V3 · 原型预览

站点数据,
按域名留一份。

Storage Keeper 为你指定的网站备份 Cookie、localStorage 和 sessionStorage,并在浏览器启动或定时刷新时恢复缺失的 Cookie。适合需要保留开发、测试或常用站点登录状态的人。

本地原型,尚无公开下载

规则范围示意

console.example.com完整域名
app.example.net二级域名
example.co.uk注册根域名

交互演示:只修改本页示例列表,不连接扩展或保存数据。

它具体保存什么

只管浏览器端状态

规则名单决定哪些站点参与备份。三类数据的保存和恢复时机不同;网页演示中的条目是示例,不代表真实备份内容。

COOKIE / 含 HttpOnly

通过 Chrome cookies API 获取并保存。会话 Cookie 可改成约 399 天的持久 Cookie;浏览器启动和定时任务会恢复缺失项。

LOCAL STORAGE

按 Origin 保存键值快照。启用后,内容脚本在页面启动时异步写回。

SESSION STORAGE

同样按 Origin 快照。原生标签页隔离会改变:恢复后不同标签页可能复用同一份快照。

不在范围内

不保存 IndexedDB、Cache Storage 或 Service Worker 内部状态,也无法阻止服务器使登录令牌失效。

规则怎么生效

先选范围,再观察结果

从当前页面加入规则时,可选完整域名、二级域名或注册根域名。范围越宽,覆盖的网站越多。内置公共后缀清单可识别 co.uk、com.cn 等多段后缀,避免错误推断根域名。

精确到主机

foo.app.example.com

只将规则用于这个完整主机名。适合只需保留某个控制台或子域名的场景。

包含一层

app.example.com

把当前主机归到二级域名规则下。加入前核对是否会覆盖你不想保存状态的同站子域名。

覆盖全部子域

example.com

根域规则也会匹配其所有子域名。通常权限和数据范围最大,只有确实需要时才使用。

上手流程

当前仅适合开发者本地试用

尚无公开下载包或公开源码入口。本页说明项目原型的工作方式,不提供虚构安装按钮。

01 · 准备本地项目目录

在 Chrome 打开 chrome://extensions,开启开发者模式,选择「加载已解压的扩展程序」。

02 · 只加入一个可信站点

打开目标网站,点扩展图标,选择准确的域名范围,再点「加入并刷新」。也可在管理列表中维护规则。

03 · 先检查退出行为

默认不恢复网站主动删除的 Cookie。先用低风险站点观察恢复是否符合预期,再考虑“Cookie 被删除后自动恢复”。

行为与限制

容易被忽略的边界

这些不是异常,而是浏览器存储模型与本原型当前权限范围带来的结果。

退出登录与恢复

  • 默认保留网站主动删除 Cookie 的行为,正常退出登录仍可生效。
  • 开启自动恢复删除 Cookie 后,退出登录可能立刻被旧 Cookie 撤销。
  • 服务端注销或令牌过期仍会使会话失效,扩展无法延长服务端有效期。
  • Cookie 的持久化最长约 399 天,具体行为受浏览器与站点策略影响。

权限与数据

  • 当前清单包含 <all_urls> 和 cookies 权限,以覆盖用户配置的网站规则。
  • 扩展本地备份未额外加密;卸载扩展会清除备份。
  • 受保护的 Chrome 页面和 Chrome 网上应用店无法注入。
  • localStorage 与 sessionStorage 恢复是异步的,页面极早运行的脚本可能先读到空值。
常见问题

使用前确认

它会把 Cookie 上传到服务器吗?

项目代码将备份写入 chrome.storage.local,本原型没有远程同步功能。备份仍是本机敏感数据,其他可访问该浏览器配置的本地用户风险需自行评估。

能保存完整网站状态吗?

不能。当前覆盖 Cookie、localStorage、sessionStorage;不包括 IndexedDB、Cache Storage、Service Worker 状态,也不能保存服务器端会话。

为什么会话存储会出现在另一个标签页?

浏览器原本按标签页隔离 sessionStorage,而此原型按 Origin 保存快照。恢复时可能将一份快照写入不同标签页。

现在可以从哪里下载?

目前没有公开下载或公开仓库入口。请勿从不明来源安装,也不要把测试版用于含重要账户令牌的浏览器配置。

作者的其他项目

作者主页 ↗