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 的 STDOUT 和 STDERR。 |
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-length、cookie2、keep-alive、hosts、trailer、transfer-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) |
登录后但在登录验证之前要执行的操作的逗号分隔列表。支持 click 和 select 操作。请参阅提交登录表单后执行额外操作。 |
DAST_AUTH_BEFORE_LOGIN_ACTIONS |
selector | css:.user,id:show-login-form |
在将 DAST_AUTH_USERNAME 和 DAST_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 策略:AuthServerAllowlist 和 AuthNegotiateDelegateAllowlist。在 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_USERNAME 和 DAST_AUTH_PASSWORD 与登录表单一起提交,以创建经过身份验证的扫描。 |
DAST_AUTH_USERNAME |
string | [email protected] |
用于对网站进行身份验证的用户名。 |
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。 |