跳转至

经过身份验证的扫描

Ostorlab 提供支持在移动应用程序、Web 应用程序和后端服务器上执行经过身份验证的扫描(Authenticated scans)。 在创建扫描(Scan)时,可以使用“Add Test Credentials”菜单设置凭据。

开始之前需要准备什么?

您需要目标上的测试帐户、其凭据、登录要求输入代码时的 2FA 详细信息,以及从扫描器到目标的网络访问。

  • 目标上的测试帐户。 我们建议使用在登录失败后不会被锁定的专用测试帐户。
  • 该帐户的凭据。 例如登录名和密码,或者用于多步骤登录流程的 Puppeteer 脚本。请参阅 我可以添加哪些类型的凭据?。
  • 2FA 方法(如果登录需要)。 某些方法需要事先准备,例如用于短信的专用测试电话号码。请参阅 如何处理 OTP 和 MFA?。
  • 对目标的网络访问。 请参阅 扫描器需要哪些网络访问?。
  • 对于移动扫描,需要应用程序。 为 Android 上传 APK 或 AAB 文件,为 iOS 上传未加密的 IPA 文件,或者从应用商店扫描应用程序。

我可以添加哪些类型的凭据?

您可以添加 Login & Password、Basic Authentication、Email、Credit card、Phone Number、Address、Certificates、Script、Custom 和 HTTP Header 凭据,以及四种 2FA 类型(SMS、Email、TOTP 和 Manual)。下表介绍了每种类型。

在创建扫描时,在 set scan Credentials 步骤中。单击 Add Test Credentials

Add Test Credentials Button Location

将出现一个菜单,允许您添加多个测试凭据和参数,例如用户名/密码、信用卡数据、地址和电话号码,以执行多项测试和场景,例如付款和结账(Checkouts)。

Test Credentials Configuration Menu

您也可以从 Test Credentials 菜单管理凭据,然后在创建扫描时选择它们。可用的凭据类型如下:

类型 用途
Login & Password 需要用户名和密码的简单身份验证流程。
Basic Authentication 使用 HTTP Basic Authentication 方案的目标。
Email 测试期间使用的电子邮件地址。
Credit card 用于支付和结账等场景的卡数据。
Phone Number 测试期间使用的电话号码。
Address 测试期间使用的地址。
Certificates 用于双向 TLS 的 TLS/SSL 客户端证书。对于移动应用程序,证书必须为 PEM 格式。
Script 用于复杂身份验证流程或结账等交互的 Puppeteer 脚本。
Custom 用于自定义表单字段的键值对,例如用户名、密码和域名。
HTTP Header Authorization 或 User-Agent 等标头,常用于 API。
2FA SMS, 2FA Email, 2FA TOTP, 2FA Manual 要求输入一次性代码的登录。请参阅 如何处理 OTP 和 MFA?。

Login and Password Input Fields

有关完整的 Web 操作步骤,请参阅 经过身份验证的 Web 扫描。Web Deep Agentic Scan、Mobile Deep Agentic Scan 和 运行多资产扫描 指南中也包含相同的凭据步骤。

使用 puppeteer 脚本 / Chrome recorder 的 Web 应用身份验证

如果您有需要更复杂身份验证流程的 Web 应用程序,您可以上传在扫描期间将执行的 Puppeteer 脚本。这些脚本可以使用 the Chrome Devtool Recorder 生成。

Puppeteer Script Upload Interface

对于需要使用证书进行身份验证的移动应用程序,您可以上传您的证书。证书必须采用 PEM 格式。

Certificate Authentication Option

上传您的证书

Certificate Upload Dialog

如何处理 OTP 和 MFA?

在登录凭据之外添加一个 2FA 凭据:SMS、Email、TOTP 或 Manual。

每种凭据都从 Scan > Test Credentials > New 创建。请选择与您的应用程序发送代码的方式相匹配的方法:

方法 您需要提供的内容 关键条件
2FA SMS 您的应用程序发送 OTP 消息所用的 Sender Phone Number。 联系 Ostorlab Support 获取专用测试电话号码,并在测试帐户上设置该号码。
2FA Email Email Sender 地址,以及测试邮箱的电子邮件地址和密码。 邮箱必须启用 IMAP/SMTP 访问。如果邮箱提供商强制使用 2FA,请使用应用专用密码 (App Password),而不是常规密码。
2FA TOTP Base32 编码的 TOTP Secret(种子)。 在测试帐户上启用 TOTP,并保留身份验证器设置时获得的种子。
2FA Manual 一个 Sender 参考标签。 扫描会在 2FA 步骤暂停。您需要在扫描详细信息中输入代码,在您输入之前扫描将一直保持暂停。

有关分步说明,请参阅 自动化扫描中的双重身份验证 (2FA)。

移动应用程序的复杂身份验证方案

复杂的身份验证方案(例如 OTP 或随机数字小键盘)可以使用 Appium 脚本自动完成,或者由 Ostorlab 支持成员手动执行一次性操作。如果您的应用程序需要自定义身份验证方案,请通过电子邮件与我们联系:support@ostorlab.dev 寻求建议。

我可以使用多个用户角色进行测试吗?

您可以向一次扫描添加多个测试凭据。登录名和密码凭据还可接受一个可选的 role 值,该值通过 API 或 CI 集成设置,而不是在 UI 中设置。

  • 在 UI 中,您可以向一次扫描添加多个测试凭据。
  • 在 API 中,扫描接受凭据 ID 列表 (credentialIds),角色在 LoginPasswordTestCredentials 类型的 role 字段中设置。请参阅 API。
  • 在 CI 集成中,您可以将角色与登录名和密码一起传递:
    • GitLab:OSTORLAB_CREDENTIALS 接受以分号分隔的列表,格式为 login,password,role,url。对于移动扫描,角色和 URL 是可选的。
    • Bitrise:--test-credentials-role 是一个可选的角色字段,与 --test-credentials-login 和 --test-credentials-password 一起使用。

扫描器需要哪些网络访问?

将 扫描器 IP 地址 加入允许列表,以免 WAF 和防火墙干扰扫描。如果目标不面向互联网,请使用反向代理或本地部署 (on-prem) 扫描器;请参阅 扫描内部 Web 应用程序。

如何检查登录是否成功?

打开扫描的 Call Coverage,查看请求和屏幕,以确认扫描器已登录并到达受保护的区域。

如果扫描器无法通过多步骤流程,您可以使用 UI Prompts 来引导它。UI Prompts 是针对帐户创建等多步骤操作的自然语言指令。扫描的 Call Coverage 会显示其使用的 UI Prompts。

如果登录失败怎么办?

大多数登录失败源于以下四个原因之一:扫描器无法访问目标、未捕获短信或电子邮件代码、扫描在 2FA Manual 步骤暂停,或者登录流程过于复杂,无法仅通过登录名和密码完成。请在下方找到对应的情况。

扫描器无法访问目标

未捕获到短信代码

  • 确保测试帐户已启用短信 2FA。
  • 确认您的应用程序的反垃圾邮件或速率限制策略允许来自网关的传入消息。
  • 检查 Sender Phone Number 是否与收到 OTP 时设备上显示的号码完全一致。

未捕获到电子邮件代码

  • 确保电子邮件正文以清晰、易读的格式显示代码。
  • 验证邮箱已启用 IMAP/SMTP 访问,并且凭据(尤其是应用专用密码 (App Password))正确无误。
  • 确保邮箱没有受到阻止扫描器登录的额外 2FA 保护。

扫描已暂停

  • 2FA Manual 凭据会使扫描暂停,直到您输入代码为止。打开扫描详细信息并提交令牌,具体请参阅 输入令牌。

登录流程过于复杂,无法仅用登录名和密码完成

如果您的应用程序使用自定义身份验证方案,或者登录仍然失败,请通过 support@ostorlab.dev 联系我们。