HAR Viewer

在浏览器中查看 DevTools 导出的 .har 抓包:请求列表、耗时瀑布图,并标记出疑似令牌或会话 Cookie 的值。不会上传。

打开 HAR 文件

选择从浏览器 DevTools 导出的 .har 文件。文件在你的设备上读取。

在浏览器里查看 HAR 文件

.har(HTTP Archive)文件是浏览器 DevTools 导出的网络抓包:包含每一个请求和响应,连同请求头、耗时、Cookie 和正文。这个工具会打开它,展示可滚动的请求列表、每个请求的耗时分解,以及点击后可见的完整请求头/正文详情。

HAR 抓包也是浏览器能生成的最敏感的文件之一——它可能原样包含有效的会话 Cookie、Bearer 令牌和 API 密钥。这并非假设:在 2023 年 Okta 支持系统的入侵事件中,攻击者利用了客户上传到支持工单里的 HAR 文件中包含的会话令牌。这个工具在加载时会扫描请求头、查询参数和 Cookie,标记出包含常见敏感信息形态的请求,让你在分享之前先看清楚自己将要交出什么。

为什么你的文件不会离开设备

这里的隐私来自结构,而不是承诺。没有"上传"这一步,是因为根本没有可供上传的服务器——考虑到 HAR 文件可能携带攻击者觊觎的那类会话令牌,这一点比其他工具更为重要:

  • 文件的读取和解析全部在你的浏览器内完成。
  • 页面以静态文件的形式分发,不会发出携带你数据的请求。
  • 源代码公开,任何人都可以查看(MIT)。
  • 可以离线使用——既然数据不会离开设备,离线自然也能用。

想自己确认的话,打开文件时打开浏览器的网络(Network)面板——没有任何请求携带其中的内容。 查看源代码。

使用方法

  1. 打开文件

    点击选择从浏览器 DevTools(Network 面板 → 导出 HAR)导出的 .har 文件,或把文件拖到页面任意位置。文件在本地读取。

  2. 查看请求列表

    列出每个请求的 method / URL / status / type / size / time,并为每一行附上一个小小的时间线条。凡是请求头、查询参数或 Cookie 中含有疑似令牌或敏感信息的请求,都会带有警告图标。

  3. 点击某一行查看详情

    可以查看完整的请求/响应头、查询参数、Cookie,以及格式化后的正文。被标记的值会原地高亮显示——不会被隐藏。

常见问题

我的 HAR 文件会被上传到某个地方吗?

不会。文件的读取和解析全部在你的浏览器内完成。没有服务器端处理,因此其中包含的任何敏感信息也没有离开设备的途径。源代码公开,你可以在浏览器的网络(Network)面板中确认这一点。

警告图标是什么意思?

表示该请求的请求头、查询参数或 Cookie 中,含有常见敏感信息的典型形态:Authorization: Bearer 令牌、JWT(以 eyJ 开头,由点分隔的三段结构)、AWS 访问密钥(AKIA...)、GitHub 令牌(ghp_/gho_...)、以 sk- 开头的 API 密钥、名为 api_key/access_token/token 的查询参数,或者只是存在 Cookie / Set-Cookie 头。

会隐藏或涂改被标记的值吗?

不会,这是有意为之的。目的是让你在决定是否与他人分享之前,先看清楚自己这份抓包里究竟有什么。被标记的值会在详情视图中高亮显示,而不是被遮盖。

也会扫描请求和响应正文吗?

目前的版本不会。检测范围仅限于请求头的值、查询参数的值和 Cookie 的值。正文中同样可能包含敏感信息,但扫描正文是范围更大的另一个课题,留待后续版本处理。

可以去除令牌并导出一份清理后的 HAR 文件吗?

不可以。这个工具只是一个查看器,而有意进行清理/涂改是另一项各有取舍的工作。如果你需要这个功能,Cloudflare 发布了专门为此打造的开源客户端 HAR 清理工具。

时间线条显示的是什么?

每个请求的 blocked / DNS / connect / send / wait / receive(来自 HAR 的 timings)阶段,以堆叠条形的方式绘制,其长度是相对于整个抓包总时长的比例——占整体时长比例越大的请求,条形越长;耗时很短的请求,条形也很短。

可以离线使用吗?

可以。它是 PWA,第一次访问后会被缓存,没有网络也能打开。你也可以把它添加到主屏幕使用。