这些 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 的 STDOUT 和 STDERR 。 |
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-length 、cookie2 、keep-alive 、hosts 、trailer 、transfer-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 。 |