利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

起因:把这么大的权限交出去,我有点犯怵

我平时做开发、调试时要频繁地改 cookie——验证登录态、复现某个只在特定 cookie 下才出现的bug、把一套登录信息从一个环境搬到另一个环境。浏览器自带的开发者工具能看能改,但操作起来零碎,复制粘贴一长串值很容易出错,于是我和很多人一样,去装了个 cookie 编辑器扩展。

装的时候我才意识到一件事:cookie 编辑器这类工具,本质上要拿到「读写你在各个网站上的cookie」这个权限。而 cookie 里装的是什么?登录态、会话凭证——某种意义上就是你在一个个网站上的「钥匙」。把这一级别的访问权交出去,我个人会希望这个工具最好是:我能自己看到它的源码、能确认它没把我的数据偷偷传到哪儿去。

市面上的 cookie 编辑器不少,各有各的好。只是挑来挑去,要么是闭源的、我没法确认它在背后做了什么,要么是装上来就要一大片权限。这不是说它们有问题,纯粹是我自己有点轴——这种级别的访问权,我希望交给一个我能完全看明白的工具。找不到完全顺手的,干脆自己写了一个。

它叫 OpenCookie。

我给自己定的几条标准

动手之前,我先想清楚「用得放心」对我到底意味着什么,最后落到三条,整个工具就是围着这三条做的:

一、零数据上传。 没有服务器、没有统计、没有任何追踪。你的所有 cookie 操作,自始至终只发生在你自己的浏览器里,一个字节都不会离开。它根本就没有「往外发」这条代码路径——不是「我们承诺不滥用」,而是它压根没有能力把数据送出去。

二、权限最小,而且按需授权。 这一条我最在意。OpenCookie 装上的时候,不会向你索要任何网站的访问权限——安装界面是干净的,不会跳出一长串「读取和更改你在所有网站上的数据」那种让人心里一紧的提示。只有当你真的要在某个站点上操作 cookie、点了授权按钮,它才拿到那个站点的权限;而且你可以选择「只授权当前站点」,也可以「授权所有站点」,完全由你决定给到哪一级。

三、代码小到你能自己读完。 OpenCookie 是纯 JavaScript 写的,没有构建步骤、没有框架、没有打包后看不懂的产物——仓库里的代码就是跑在你浏览器里的代码。整个项目小到你花点时间能自己从头读一遍。MIT 开源。我想要的效果是:你不用「听我空口保证」,你可以自己去核实。

实际怎么用

功能上它就是一个称手的 cookie 编辑器,常规那套都有,我尽量做得直接:

  • 查看:打开就列出当前标签页的所有 cookie,名称、值、域、路径、过期时间、Secure / HttpOnly / SameSite 这些属性都看得到。
  • 增 / 删 / 改:单条增加、编辑、删除;也支持「清空当前页全部 cookie」(会先让你确认,避免手滑)。cookie 的值可以一键复制,不用手动框选那一长串。
  • 搜索过滤:cookie 一多就用顶部的搜索框按名称或值实时过滤,快速定位。
  • JSON 导入导出:可以把 cookie 导出成 JSON(复制、或存成文件),也能粘贴 / 选文件导入。格式和常见的 cookie 工具兼容,方便在不同环境之间搬运,或者备份一份。
  • 明暗主题:支持浅色 / 深色,切换后会记住你的选择。

几个我自己纠结过的取舍

为什么坚持纯 JS、不上构建? 因为「可审计」这条如果要当真,就不能让仓库里的代码和实际运行的代码之间隔着一层打包工具。无构建意味着「所见即所跑」——你 clone 下来读到的,就是装进浏览器跑的,没有中间商。代价是我放弃了一些工程上的便利,但对一个主打「可信」的工具来说,我觉得这个取舍是对的。

为什么不在安装时就要权限? 技术上,装的时候一次性要到「所有网站」最省事,后面什么都不用管。但那恰恰是我作为用户最不放心的那种扩展。所以我宁可让流程多一步——你要用、你授权、它才拿到——把「给不给、给到哪一级」的决定权留在你手里。

为什么 JSON 用兼容常见工具的格式? 我不想做一个把你锁死在我这儿的工具。用通用格式,你随时能把数据导出去给别的工具用,也能从别处导进来。能随时离开,你才会更放心地留下。

关于隐私和开源

再强调一次,因为这是 OpenCookie 存在的理由:所有数据只在你浏览器本地,没有服务器、没有统计、没有追踪,什么都不会离开你的浏览器。隐私政策和全部源码都在仓库里,你可以在安装之前自己通读一遍再决定。

安装

现在上了 Chrome Web Store。如果你更习惯自己跑源码,仓库里也写了从源码加载的步骤,毕竟它本来就是完全开源、可审计的。

商店:https://chromewebstore.google.com/detail/oiidchgmgceclcobnphmglglbccmmeog
源码:https://github.com/mq408/OpenCookie

欢迎试用,也欢迎反馈。希望它能帮上你。

0
0