这些 CI/CD 变量是特定于基于浏览器的 DAST 分析器的。它们可以用于根据您的要求自定义 DAST 的行为。

扫描器行为

这些变量控制扫描的进行方式及其结果的存储位置。

CI/CD 变量 类型 示例 描述
DAST_CHECKS_TO_EXCLUDE 字符串 552.2,78.1 逗号分隔的检查标识符列表,从扫描中排除。标识符,请参阅 漏洞检查
DAST_CHECKS_TO_RUN 字符串列表 16.1,16.2,16.3 逗号分隔的检查标识符列表,用于扫描。标识符,请参阅 漏洞检查
DAST_CRAWL_GRAPH 布尔值 true 设置为 true 以生成导航路径访问的 SVG 图,扫描的爬网阶段。您还必须将 gl-dast-crawl-graph.svg 定义为 CI 作业产物,以便访问生成的图。默认值为 false
DAST_FULL_SCAN 布尔值 true 设置为 true 以运行被动检查和主动检查。默认值为 false
DAST_LOG_BROWSER_OUTPUT 布尔值 true 设置为 true 以记录 Chromium 的 STDOUTSTDERR
DAST_LOG_CONFIG 字符串列表 brows:debug,auth:debug 用于控制台日志的模块及其预期日志级别列表。
DAST_LOG_DEVTOOLS_CONFIG 字符串 Default:messageAndBody,truncate:2000 设置以记录 DAST 和 Chromium 浏览器之间的协议消息。
DAST_LOG_FILE_CONFIG 字符串列表 brows:debug,auth:debug 用于文件日志的模块及其预期日志级别列表。
DAST_LOG_FILE_PATH 字符串 /output/browserker.log 设置为文件日志的路径。默认值为 gl-dast-scan.log
SECURE_ANALYZERS_PREFIX URL registry.organization.com 设置 Docker 注册表基本地址以下载分析器。
SECURE_LOG_LEVEL 字符串 debug 设置文件日志的默认级别。请参阅 SECURE_LOG_LEVEL

元素、操作和超时

这些变量告诉扫描器在哪里查找某些元素、要执行哪些操作以及等待操作完成的时间。

CI/CD 变量 类型 示例 描述
DAST_ACTIVE_SCAN_TIMEOUT 持续时间字符串 3h 等待主动扫描阶段完成的最长时间。默认值为 3 小时。
DAST_ACTIVE_SCAN_WORKER_COUNT 数字 3 并行运行的主动检查数量。默认值为 3。
DAST_CRAWL_EXTRACT_ELEMENT_TIMEOUT 持续时间字符串 5s 允许浏览器提取新发现的元素或导航的最长时间。默认值为 5s
DAST_CRAWL_MAX_ACTIONS 数字 10000 爬虫执行的最大动作数。示例操作包括选择链接或填写表单。默认值为 10000
DAST_CRAWL_MAX_DEPTH 数字 10 爬虫采取的最大链式动作数。例如,Click, Form Fill, Click 的深度为三。默认值为 10
DAST_CRAWL_SEARCH_ELEMENT_TIMEOUT 持续时间字符串 3s 允许浏览器搜索新元素或用户操作的最长时间。默认值为 3s
DAST_CRAWL_TIMEOUT 持续时间字符串 5m 等待扫描的爬网阶段完成的最长时间。默认值为 24h
DAST_CRAWL_WORKER_COUNT 数字 3 要使用的最大并发浏览器实例数量。对于极狐 GitLab.com 的实例运行器,我们建议最多使用三个。具有更多资源的私有运行器可能会受益于更高的数量,但在五到七个实例后可能会产生很少的收益。默认值是动态的,等于可用的逻辑 CPU 数量。
DAST_PAGE_DOM_READY_TIMEOUT 持续时间字符串 7s 等待浏览器在导航完成后将页面视为加载完成并准备好进行分析的最长时间。默认值为 6s
DAST_PAGE_DOM_STABLE_WAIT 持续时间字符串 200ms 定义在检查页面是否稳定之前等待 DOM 更新的时间。默认值为 500ms
DAST_PAGE_ELEMENT_READY_TIMEOUT 持续时间字符串 600ms 等待元素准备好进行分析的最长时间。默认值为 300ms
DAST_PAGE_IS_LOADING_ELEMENT 选择器 css:#page-is-loading 当页面上不再可见时,指示分析器页面已加载完成并可以继续扫描的选择器。不能与 DAST_PAGE_IS_READY_ELEMENT 一起使用。
DAST_PAGE_IS_READY_ELEMENT 选择器 css:#page-is-ready 检测为页面上可见时,指示分析器页面已加载完成并可以继续扫描的选择器。不能与 DAST_PAGE_IS_LOADING_ELEMENT 一起使用。
DAST_PAGE_MAX_RESPONSE_SIZE_MB 数字 15 HTTP 响应体的最大大小。响应体大于此值的请求被浏览器阻止。默认值为 10 MB。
DAST_PAGE_READY_AFTER_ACTION_TIMEOUT 持续时间字符串 7s 等待浏览器将页面视为加载完成并准备好进行分析的最长时间。默认值为 7s
DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT 持续时间字符串 15s 等待浏览器从一个页面导航到另一个页面的最长时间。默认值为 15s
DAST_PASSIVE_SCAN_WORKER_COUNT 整数 5 并行被动扫描的工作者数量。默认值为可用 CPU 的数量。
DAST_PKCS12_CERTIFICATE_BASE64 字符串 ZGZkZ2p5NGd... 用于需要相互 TLS 的站点的 PKCS12 证书。必须编码为 base64 文本。
DAST_PKCS12_PASSWORD 字符串 password DAST_PKCS12_CERTIFICATE_BASE64 中使用的证书的密码。使用极狐 GitLab UI 创建敏感的 自定义 CI/CI 变量
DAST_REQUEST_ADVERTISE_SCAN 布尔值 true 设置为 true 以添加 Via: 极狐 GitLab DAST <version> 头到每个发送的请求,表明请求是作为极狐 GitLab DAST 扫描的一部分发送的。默认值:false
DAST_REQUEST_COOKIES 字典 abtesting_group:3,region:locked 每个请求添加的 Cookie 名称和值。
DAST_REQUEST_HEADERS 字符串 Cache-control:no-cache 设置为逗号分隔的请求头名称和值列表。不支持以下请求头:content-lengthcookie2keep-alivehoststrailertransfer-encoding 和所有带有 proxy- 前缀的请求头。
DAST_SCOPE_ALLOW_HOSTS 字符串列表 site.com,another.com 包含在此变量中的主机名在爬网时被视为范围内的。默认情况下,DAST_TARGET_URL 主机名包含在允许的主机列表中。使用 DAST_REQUEST_HEADERS 设置的头添加到对这些主机名进行的每个请求中。
DAST_SCOPE_EXCLUDE_ELEMENTS 选择器 a[href='2.html'],css:.no-follow 扫描时忽略的选择器的逗号分隔列表。
DAST_SCOPE_EXCLUDE_HOSTS 字符串列表 site.com,another.com 包含在此变量中的主机名被视为排除,并强制断开连接。
DAST_SCOPE_IGNORE_HOSTS 字符串列表 site.com,another.com 包含在此变量中的主机名被访问,但不攻击,不报告。
DAST_TARGET_CHECK_SKIP 布尔值 true 设置为 true 以防止 DAST 在扫描之前检查目标是否可用。默认值:false
DAST_TARGET_CHECK_TIMEOUT 数字 60 等待目标可用性的时间限制(秒)。默认值:60s
DAST_TARGET_PATHS_FILE 字符串 /builds/project/urls.txt 确保提供的路径始终被扫描。设置为包含相对于 DAST_TARGET_URL 的 URL 路径列表的文件路径。文件必须为纯文本格式,每行一个路径。
DAST_TARGET_PATHS 字符串 /page1.html,/category1/page3.html 确保提供的路径始终被扫描。设置为相对于 DAST_TARGET_URL 的 URL 路径的逗号分隔列表。
DAST_TARGET_URL URL https://site.com 要扫描的网站的 URL。
DAST_USE_CACHE 布尔值 true 设置为 false 以禁用缓存。默认值为 true注意: 禁用缓存可能导致 OOM 事件或 DAST 作业超时。

认证

这些变量告诉扫描器如何与您的应用程序进行认证。

CI/CD 变量 类型 示例 描述
DAST_AUTH_AFTER_LOGIN_ACTIONS 字符串 click(on=id:remember-me),click(on=css:.continue) 登录后但在登录验证之前运行的一系列动作的逗号分隔列表。目前支持 click 动作。
DAST_AUTH_BEFORE_LOGIN_ACTIONS 选择器 css:.user,id:show-login-form 代表元素的选择器的逗号分隔列表,以在输入 DAST_AUTH_USERNAME 和 DAST_AUTH_PASSWORD 到登录表单之前点击。
DAST_AUTH_CLEAR_INPUT_FIELDS 布尔值 true 禁用在尝试手动登录之前清除用户名和密码字段。默认设置为 false。
DAST_AUTH_COOKIE_NAMES 字符串 sessionID,groupName 设置为逗号分隔的 Cookie 名称列表,以指定用于认证的 Cookie。
DAST_AUTH_FIRST_SUBMIT_FIELD 选择器 css:input[type=submit] 描述点击以提交多页面登录过程的用户名表单的元素的选择器。
DAST_AUTH_NEGOTIATE_DELEGATION 字符串 *.example.com,example.com,*.EXAMPLE.COM,EXAMPLE.COM 应允许进行集成认证和委派的服务器。此属性设置了两个 Chromium 策略:AuthServerAllowlist 和 AuthNegotiateDelegateAllowlist。引入于极狐 GitLab 17.6。
DAST_AUTH_PASSWORD 字符串 P@55w0rd! 网站认证的密码。
DAST_AUTH_PASSWORD_FIELD 选择器 name:password 描述用于在登录表单上输入密码的元素的选择器。
DAST_AUTH_SUBMIT_FIELD 选择器 css:input[type=submit] 描述点击以提交单页登录表单或提交多页登录表单的密码表单的元素的选择器。
DAST_AUTH_SUCCESS_IF_AT_URL URL https://www.site.com/welcome URL,在提交登录表单后与浏览器中的 URL 进行比较,以确定认证是否成功。
DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND 选择器 css:.user-avatar 描述在提交登录表单后用于确定认证是否成功的元素存在的选择器。
DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM 布尔值 true 通过检查提交登录表单后是否不存在登录表单来验证认证成功。此成功检查默认启用。
DAST_AUTH_TYPE 字符串 basic-digest 要使用的认证类型。
DAST_AUTH_URL URL https://www.site.com/login 目标网站上包含登录表单的页面的 URL。DAST_AUTH_USERNAME 和 DAST_AUTH_PASSWORD 与登录表单一起提交以创建认证扫描。
DAST_AUTH_USERNAME 字符串 user@email.com 网站认证的用户名。
DAST_AUTH_USERNAME_FIELD 选择器 name:username 描述用于在登录表单上输入用户名的元素的选择器。
DAST_SCOPE_EXCLUDE_URLS URL https://site.com/.*/sign-out 认证扫描中要跳过的 URL;逗号分隔。可以使用正则表达式语法匹配多个 URL。例如,.* 匹配任意字符序列。
DAST_AUTH_REPORT 布尔值 true 设置为 true 以生成报告,详细说明在认证过程中采取的步骤。您还必须将 gl-dast-debug-auth-report.html 定义为 CI 作业产物,以便访问生成的报告。报告的内容在调试认证失败时提供帮助。默认值为 false