创建 HAR 文件
- Tier: Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
HTTP Archive (HAR) 格式文件是用于交换 HTTP 请求和响应信息的行业标准。HAR 文件的内容采用 JSON 格式,包含浏览器与网站的交互。文件扩展名 .har 被广泛使用。
HAR 文件可用于在您的 GitLab CI/CD 管道中执行 Web API 模糊测试。
HAR 文件存储了 Web 客户端和 Web 服务器之间交换的信息。它也可能存储敏感信息,如认证令牌、API 密钥和会话 Cookie。我们建议您在将 HAR 文件添加到仓库之前先审查其内容。
HAR 文件创建
您可以手动创建 HAR 文件,或使用专门用于录制 Web 会话的工具。我们建议使用专门工具。但是,重要的是要确保这些工具创建的文件不会暴露敏感信息,并且可以安全使用。
以下工具可以根据您的网络活动生成 HAR 文件。它们会自动记录您的网络活动并生成 HAR 文件:
- GitLab HAR Recorder.
- Insomnia API Client.
- Fiddler debugging proxy.
- Safari web browser.
- Chrome web browser.
- Firefox web browser.
HAR 文件可能包含敏感信息,如认证令牌、API 密钥和会话 Cookie。我们建议您在将 HAR 文件添加到仓库之前先审查其内容。
GitLab HAR Recorder
GitLab HAR Recorder 是一个用于记录 HTTP 消息并将其保存为 HTTP Archive (HAR) 文件的命令行工具。有关 GitLab HAR Recorder 的更多详细信息,请参阅 主页。
安装 GitLab HAR Recorder
先决条件:
- 安装 Python 3.6 或更高版本。
- 对于 Microsoft Windows,您还必须安装
Microsoft Visual C++ 14.0。它包含在 Visual Studio 下载页面 的 Visual Studio 生成工具 中。 - 安装 HAR Recorder。
安装 GitLab HAR Recorder:
pip install gitlab-har-recorder --extra-index-url https://gitlab.com/api/v4/projects/22441624/packages/pypi/simple使用 GitLab HAR Recorder 创建 HAR 文件
- 使用代理端口和 HAR 文件名启动记录器。
- 使用代理完成浏览器操作。
- 确保使用了代理!
- 停止记录器。
要验证 HAR 包含所有请求,请使用在线 HAR 查看器,例如:
Insomnia API Client
Insomnia API Client 是一个 API 设计工具,除了许多用途外,还能帮助您设计、描述和测试 API。您还可以使用它生成可用于 Web API 模糊测试 的 HAR 文件。
使用 Insomnia API Client 创建 HAR 文件
- 定义或导入您的 API。
- Postman v2。
- Curl。
- OpenAPI v2, v3。
- 验证每个 API 调用是否有效。
- 如果您导入了 OpenAPI 规范,请检查并添加有效数据。
- 选择 API > 导入/导出。
- 选择 导出数据 > 当前工作区。
- 选择要包含在 HAR 文件中的请求。
- 选择 导出。
- 在 选择导出类型 下拉列表中选择 HAR – HTTP 存档格式。
- 选择 完成。
- 输入 HAR 文件的位置和文件名。
Fiddler debugging proxy
Fiddler 是一个 Web 调试工具。它捕获 HTTP 和 HTTP(S) 网络流量,并允许您检查每个请求。它还允许您以 HAR 格式导出请求和响应。
使用 Fiddler 创建 HAR 文件
- 访问 Fiddler 主页 并登录。如果您还没有账户,请先创建一个账户。
- 浏览调用 API 的页面。Fiddler 会自动捕获请求。
- 选择一个或多个请求,然后从上下文菜单中选择 导出 > 选定会话。
- 在 选择格式 下拉列表中选择 HTTPArchive v1.2。
- 输入文件名并选择 保存。
Fiddler 会显示弹出消息确认导出成功。
Safari web browser
Safari 是由 Apple 维护的 Web 浏览器。随着 Web 开发的发展,浏览器支持新功能。使用 Safari,您可以探索网络流量并将其导出为 HAR 文件。
使用 Safari 创建 HAR 文件
先决条件:
- 启用
开发菜单项。- 打开 Safari 的偏好设置。按 Command+, 或从菜单中选择 Safari > 偏好设置。
- 选择 高级 选项卡,然后选择
在菜单栏中显示开发菜单项。 - 关闭 偏好设置 窗口。
- 打开 Web 检查器。按 Option+Command+i,或从菜单中选择 开发 > 显示 Web 检查器。
- 选择 网络 选项卡,然后选择 保留日志。
- 浏览调用 API 的页面。
- 打开 Web 检查器 并选择 网络 选项卡
- 右键单击要导出的请求并选择 导出 HAR。
- 输入文件名并选择 保存。
Chrome web browser
Chrome 是由 Google 维护的 Web 浏览器。随着 Web 开发的发展,浏览器支持新功能。使用 Chrome,您可以探索网络流量并将其导出为 HAR 文件。
使用 Chrome 创建 HAR 文件
- 从 Chrome 上下文菜单中选择 检查。
- 选择 网络 选项卡。
- 选择 保留日志。
- 浏览调用 API 的页面。
- 选择一个或多个请求。
- 右键单击并选择 将所有内容另存为 HAR。
- 输入文件名并选择 保存。
- 要追加其他请求,请选择并保存到同一文件。
Firefox Web Browser
Firefox 是由 Mozilla 维护的 Web 浏览器。随着 Web 开发的发展,浏览器支持新功能。使用 Firefox,您可以探索网络流量并将其导出为 HAR 文件。
使用 Firefox 创建 HAR 文件
- 从 Firefox 上下文菜单中选择 检查。
- 选择 网络 选项卡。
- 浏览调用 API 的页面。
- 检查 网络 选项卡并确认请求正在被记录。如果有消息
执行请求或重新加载页面以查看网络活动的详细信息,请选择 重新加载 开始记录请求。 - 选择一个或多个请求。
- 右键单击并选择 全部另存为 HAR。
- 输入文件名并选择 保存。
- 要追加其他请求,请选择并保存到同一文件。
HAR 验证
在使用 HAR 文件之前,重要的是要确保它们不会暴露任何敏感信息。
对于每个 HAR 文件,您应该:
- 查看 HAR 文件的内容
- 检查 HAR 文件中的敏感信息
- 编辑或删除敏感信息
查看 HAR 文件内容
我们建议使用能够以结构化方式呈现内容的工具查看 HAR 文件的内容。网上有多种 HAR 文件查看器可用。如果您不想上传 HAR 文件,可以使用安装在您计算机上的工具。HAR 文件使用 JSON 格式,因此也可以在文本编辑器中查看。
推荐的 HAR 文件查看工具包括:
- HAR Viewer - (在线)
- Google Admin Toolbox HAR Analyzer - (在线)
- Fiddler - 本地
- Insomnia API Client - 本地
检查 HAR 文件内容
检查 HAR 文件中是否存在以下任何信息:
- 可能有助于授予应用程序访问权限的信息,例如:认证令牌、认证令牌、Cookie、API 密钥。
- 个人身份信息 (PII)。
我们强烈建议您 编辑或删除 任何敏感信息。
使用以下清单作为起点。这并非详尽无遗的列表。
- 查找密钥。例如:如果您的应用程序需要认证,请检查常见位置或认证信息:
- 与认证相关的标头。例如:Cookie、授权。这些标头可能包含有效信息。
- 与认证相关的请求。这些请求的正文可能包含用户凭据或令牌等信息。
- 会话令牌。会话令牌可能授予您的应用程序访问权限。这些令牌的位置可能不同。它们可能在标头、查询参数或正文中。
- 查找个人身份信息
- 例如,如果您的应用程序获取用户列表及其个人数据:电话、姓名、电子邮件。
- 认证信息也可能包含个人身份信息。
编辑或删除敏感信息
编辑或删除在 HAR 文件内容检查 期间发现的敏感信息。HAR 文件是 JSON 文件,可以在任何文本编辑器中编辑。
编辑 HAR 文件后,在 HAR 文件查看器中打开它以验证其格式和结构是否完整。
以下示例演示了使用 Visual Studio Code 文本编辑器编辑在标头中找到的授权令牌。