Help us learn about your current experience with the documentation. Take the survey.

可用的 CI/CD 变量

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

扫描器行为

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

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

元素、操作和超时

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

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

身份验证

这些变量告诉扫描器如何对您的应用程序进行身份验证。

CI/CD variable Type Example Description
DAST_AUTH_AFTER_LOGIN_ACTIONS string select(option=id:accept-yes),click(on=css:.continue) 登录后但在登录验证之前要执行的操作的逗号分隔列表。支持 clickselect 操作。请参阅提交登录表单后执行额外操作
DAST_AUTH_BEFORE_LOGIN_ACTIONS selector css:.user,id:show-login-form 在将 DAST_AUTH_USERNAMEDAST_AUTH_PASSWORD 输入登录表单之前,要点击的元素的选择器逗号分隔列表。
DAST_AUTH_CLEAR_INPUT_FIELDS boolean true 禁止在尝试手动登录前清除用户名和密码字段。默认设置为 false。
DAST_AUTH_COOKIE_NAMES string sessionID,groupName 设置为用于身份验证的 cookie 名称的逗号分隔列表。
DAST_AUTH_FIRST_SUBMIT_FIELD selector css:input[type=submit] 描述在多页登录过程中点击提交用户名表单的元素的选择器。
DAST_AUTH_NEGOTIATE_DELEGATION string *.example.com,example.com,*.EXAMPLE.COM,EXAMPLE.COM 哪些服务器应该被允许用于集成身份验证和委派。此属性设置两个 Chromium 策略:AuthServerAllowlistAuthNegotiateDelegateAllowlist在 GitLab 17.6 中引入
DAST_AUTH_OTP_FIELD selector name:otp 描述用于在登录表单中输入一次性密码的元素的选择器。
DAST_AUTH_OTP_KEY String I5UXITDBMIQEIQKTKQFA==== 用于生成一次性密码以对网站进行身份验证的 Base32 编码的密钥。
DAST_AUTH_OTP_SUBMIT_FIELD selector css:input[type=submit] 描述在 OTP 表单与用户名表单分开时,点击提交 OTP 表单的元素的选择器。
DAST_AUTH_PASSWORD String P@55w0rd! 用于对网站进行身份验证的密码。
DAST_AUTH_PASSWORD_FIELD selector name:password 描述用于在登录表单中输入密码的元素的选择器。
DAST_AUTH_SUBMIT_FIELD selector css:input[type=submit] 描述点击提交登录表单(对于单页登录表单)或密码表单(对于多页登录表单)的元素的选择器。
DAST_AUTH_SUCCESS_IF_AT_URL URL https://www.site.com/welcome* 与浏览器中的 URL 进行比较的 URL,用于在提交登录表单后确定身份验证是否成功。可以使用通配符 * 来匹配动态 URL。
DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND selector css:.user-avatar 描述一个元素的选择器,其存在性用于在提交登录表单后确定身份验证是否成功。
DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM boolean true 通过在提交登录表单后检查登录表单是否存在来验证身份验证是否成功。此成功检查默认启用。
DAST_AUTH_TYPE string basic-digest 要使用的身份验证类型。
DAST_AUTH_URL URL https://www.site.com/login 目标网站上包含登录表单的页面 URL。DAST_AUTH_USERNAMEDAST_AUTH_PASSWORD 与登录表单一起提交,以创建经过身份验证的扫描。
DAST_AUTH_USERNAME string user@email.com 用于对网站进行身份验证的用户名。
DAST_AUTH_USERNAME_FIELD selector name:username 描述用于在登录表单中输入用户名的元素的选择器。
DAST_SCOPE_EXCLUDE_URLS URLs https://site.com/.*/sign-out 在经过身份验证的扫描中要跳过的 URL;逗号分隔。可以使用正则表达式语法来匹配多个 URL。例如,.* 匹配任意字符序列。
DAST_AUTH_REPORT boolean true 设置为 true 以生成一份报告,详细说明身份验证过程中采取的步骤。您还必须将 gl-dast-debug-auth-report.html 定义为 CI 作业工件,才能访问生成的报告。报告内容有助于调试身份验证失败。默认为 false