跳至内容

经过验证的审核

创建可重用的 Cookie、Bearer 或自定义标头测试会话并安全地验证受保护的覆盖范围。


重用受保护的测试会话

测试会话是为一个经过验证的域保存的命名身份验证凭据。完整和定制的安全审核可以重复使用它,因此您无需为每次运行恢复或粘贴密钥。轻量级安全审计始终保持公开状态。

VICE会加密保存的机密信息,仅验证和审计工作进程可以使用。系统从不需要你的密码。

保存的会话保留在经过验证的域中,并且可以搜索、编辑、轮换或撤销。

  • 每个已验证的域最多创建五个会话。
  • 选择一小时到三十天的有效期。
  • 凭据仅发送到已验证的网站或为该会话配置的确切Supabase项目。

选择认证方式

使用与成功登录请求已使用的方法相同的方法。使用专用测试帐户打开您的应用程序,然后在创建会话之前在浏览器开发人员工具中检查受保护的请求。

检查成功的同源请求并仅复制所选方法所需的身份验证值。

  • Supabase身份验证
  • Bearer 令牌:请求包含 Authorization 标头,其值以 Bearer 开头。
  • Cookie 标头:浏览器使用一个或多个第一方 cookie 来验证请求。
  • 自定义标头:应用程序使用另一个标头,例如 x-api-key 或 x-auth-token。
使用专用测试帐户
仅授予您要审核的受保护路由所需的权限。只要较小的角色可以执行相同的流程,就避免进行个人或生产管理员会话。

获取 Bearer 代币

Bearer 令牌是秘密访问令牌:任何拥有有效令牌的系统都可以将其呈现给服务器。它通常是 JWT,但并非每个 Bearer 令牌都使用 JWT 格式。将整个值视为与密码等效的机密。

使用专用测试帐户登录,打开 Developer Tools > 网络,重新加载受保护的页面,然后选择仅在登录时成功的同源请求。在标头 > Request Headers 下,查找 Authorization: Bearer ,后跟令牌。

  • VICE接受带或不带Bearer前缀的用户令牌。
  • 如果没有出现 Authorization 标头,则应用程序可能会使用 cookie 或自定义标头进行身份验证。
复制什么
1Observed request
2Authorization: Bearer eyJhbGciOi...
3
4Paste into VICE
5eyJhbGciOi...

Supabase身份验证

如果应用使用Supabase登录,请选择Supabase Auth。仅提供Bearer令牌可能无法恢复浏览器会话。

使用测试账号登录。在浏览器开发者工具中打开Application > Local Storage或Session Storage。在你的网站下,将sb-<project-ref>-auth-token的JSON值复制到可选的会话导入字段。

请使用公开密钥或旧版anon密钥。secret和service-role密钥会被拒绝。

  • 访问令牌用于识别账号,刷新令牌用于续期会话。请从同一次登录中复制这两个值,不要只复制字段名称。
  • VICE 会填入两个令牌并检测项目 URL。请从 Supabase 设置中添加可发布密钥。只有无法导入会话时才使用手动输入令牌。
  • 请使用自己网站的私有页面,而不是Supabase API。退出登录或撤销访问权限可能会在VICE到期时间之前使会话失效。

获取自定义身份验证标头

某些应用程序使用特定于产品的标头而不是 Authorization 或 Cookie 来验证 API 请求。在网络 > 标头 > Request Headers 中检查成功的受保护请求,并识别携带凭据的稳定标头。

  • 单独输入标头名称,例如 x-api-key 或 x-auth-token。
  • 仅将原始标头值粘贴到秘密字段中,无需标头名称或冒号。
  • 请勿使用路由或传输标头,例如 Host、Origin、Referer、Connection、Content-Length、Transfer-Encoding 或 Proxy-Authorization。
复制什么
1Observed request
2x-auth-token: test_abc123
3
4Header name in VICE
5x-auth-token
6
7Secret in VICE
8test_abc123

登录后可访问的页面

您可以将此字段留空。 VICE 通过跟踪您网站上的链接和重定向来自动查找私人页面,然后在有或没有测试会话的情况下检查它。成功找到的页面会被记住,但在每次审核之前都会再次检查访问权限。

如果 VICE 找不到证明私人访问的页面,请在检查结果中选择手动选择页面,或打开高级设置并填写登录后可访问的页面。保留现有保存的页面地址;清除字段以切换到自动检测。

这是应用程序中需要登录的现有页面,例如帐户区域或仪表板。无论是否进行测试会话,VICE 都会打开同一页面,以检查它是否确实提供了对私人区域的访问权限。

使用测试帐户登录您的应用程序,打开该帐户可以访问的私人页面,然后从浏览器地址栏中复制其最终地址。将该地址粘贴到登录后可访问的页面中。例如,https://app.example.com/dashboard 或只是 /dashboard。将此示例替换为您的实际页面地址,并保留相同的大写和小写字母。

在不登录的情况下在私人浏览窗口中打开相同的地址。它应该要求您登录或拒绝访问私人区域。如果它显示相同的私人内容,请选择另一个页面。保持原始测试帐户窗口处于登录状态:注销可能会使您复制的会话失效。

将页面留空以进行自动检测,或在高级设置下输入私人页面。

  • 使用在 VICE 中保存为域的确切网站。对于测试环境,请使用其地址,而不是生产网站。通过 Supabase Auth,使用您的应用程序页面,而不是 Supabase 仪表板或 API URL。
  • 请勿使用登录页面、公共主页、登录 callback 或一次性登录链接。请勿在地址中包含令牌或其他秘密。
  • 选择可以安全打开的页面:查看该页面不得创建、删除、购买或发送任何内容。
  • 您不需要创建特殊页面或更改代码。此页面是访问检查和发现的入口点,而不是审核可以检查的唯一页面。
  • 高级设置下的确认文本是可选的。如果需要,请输入仅在登录后可见的稳定标签,例如帐户设置。请勿向您的应用程序添加新文本或使用姓名、电子邮件地址或更改值。要删除以前保存的确认文本,请选中其删除复选框;将该字段留空可保留该字段。
  • 有效的 Supabase 令牌并不能保证对您的应用程序的访问:测试帐户可能仍然缺乏角色或对工作区的访问权限。页面检查不成功并不一定意味着令牌已过期。

保存并检查访问

保存并检查访问会先保存会话,再比较使用和不使用会话时的页面。这项免费检查可能需要等待空闲工作进程。检查失败后,会话仍会保存并可编辑。

访问已验证表示确认了此页面的差异,并不代表完整覆盖整个应用。结果会说明失败原因:返回登录页、缺少确认文本、公开页面或无法连接。

此连接检查不消耗审计额度。

选择要审核的会话

从域概述或审核页面中,选择开始审核。选择完全或自定义,将应用程序访问权限切换到测试会话,然后从下拉列表中选择活动的命名会话。

仅针对需要受保护路线的完整或自定义覆盖范围选择已保存的会话。

  • 轻量级安全审核不使用测试会话。
  • 审核会存储选定的会话引用,而不是将机密复制到审核历史记录中。
  • 每次审计都会重新检查访问。如果无法验证,安全检查会停止,并退还预留的配额或点数。要在不使用会话的情况下审计,请选择公开区域。

轮换或撤销会话

使用“域设置”>“测试会话”下的铅笔图标来重命名会话、调整其受保护路径或标记、旋转凭据或撤销它。

  • 将新会话密钥留空以保留加密凭据及其当前过期时间。
  • 提供新的密钥以轮换凭证并应用新的过期时间。
  • 删除会话将打开一个确认对话框并立即撤销会话。
查看验证状态
尚未验证意味着 VICE 尚未完成受保护的比较。已验证意味着经过身份验证的探针观察到了预期的访问差异。在下次审核之前续订不可用或过期的会话。

继续 VICE

请参阅本指南背后的托管审核工作流程。

探索 VICE 功能