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

可用的 CI/CD 变量和配置文件

  • Tier: Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

可用的 CI/CD 变量

CI/CD 变量 描述
SECURE_ANALYZERS_PREFIX 指定下载分析器的 Docker 仓库基础地址。
APISEC_DISABLED 设置为 ’true’ 或 ‘1’ 以禁用 API 安全测试扫描。
APISEC_DISABLED_FOR_DEFAULT_BRANCH 设置为 ’true’ 或 ‘1’ 以仅对默认(生产)分支禁用 API 安全测试扫描。
APISEC_VERSION 指定 API 安全测试容器版本。默认为 3
APISEC_IMAGE_SUFFIX 指定容器镜像后缀。默认为无。
APISEC_API_PORT 指定 API 安全测试引擎使用的通信端口号。默认为 5500在 GitLab 15.5 中引入
APISEC_TARGET_URL API 测试目标的基础 URL。
APISEC_TARGET_CHECK_SKIP 禁用等待目标变为可用状态。在 GitLab 17.1 中引入
APISEC_TARGET_CHECK_STATUS_CODE 提供目标可用性检查的预期状态码。如果未提供,任何非 500 状态码都是可接受的。在 GitLab 17.1 中引入
APISEC_CONFIG API 安全测试配置文件。默认为 .gitlab-dast-api.yml
APISEC_PROFILE 测试期间使用的配置文件。默认为 Quick
APISEC_EXCLUDE_PATHS 从测试中排除 API URL 路径。
APISEC_EXCLUDE_URLS 从测试中排除 API URL。
APISEC_EXCLUDE_PARAMETER_ENV 包含排除参数的 JSON 字符串。
APISEC_EXCLUDE_PARAMETER_FILE 包含排除参数的 JSON 文件路径。
APISEC_REQUEST_HEADERS 要包含在每个扫描请求中的逗号分隔(,)列表的标头。当在屏蔽变量中存储秘密标头值时,建议使用 APISEC_REQUEST_HEADERS_BASE64,该变量有字符集限制。
APISEC_REQUEST_HEADERS_BASE64 要包含在每个扫描请求中的逗号分隔(,)列表的标头,Base64 编码。在 GitLab 15.6 中引入
APISEC_OPENAPI OpenAPI 规范文件或 URL。
APISEC_OPENAPI_RELAXED_VALIDATION 放松文档验证。默认为禁用。
APISEC_OPENAPI_ALL_MEDIA_TYPES 生成请求时使用所有支持的媒体类型而非一种。会导致测试时间更长。默认为禁用。
APISEC_OPENAPI_MEDIA_TYPES 接受测试的冒号(:)分隔的媒体类型。默认为禁用。
APISEC_HAR HTTP 存档 (HAR) 文件。
APISEC_GRAPHQL GraphQL 端点路径,例如 /api/graphql在 GitLab 15.4 中引入
APISEC_GRAPHQL_SCHEMA JSON 格式的 GraphQL schema 的 URL 或文件名。在 GitLab 15.4 中引入
APISEC_POSTMAN_COLLECTION Postman Collection 文件。
APISEC_POSTMAN_COLLECTION_VARIABLES 用于提取 Postman 变量值的 JSON 文件路径。对逗号分隔(,)文件的支持在 GitLab 15.1 中引入
APISEC_OVERRIDES_FILE 包含覆盖项的 JSON 文件路径。
APISEC_OVERRIDES_ENV 包含要覆盖的标头的 JSON 字符串。
APISEC_OVERRIDES_CMD 覆盖命令。
APISEC_OVERRIDES_CMD_VERBOSE 设置为任何值时,会将覆盖命令输出记录到 gl-api-security-scanner.log 作业工件文件中。
APISEC_PER_REQUEST_SCRIPT 每个请求脚本的完整路径和文件名。查看演示项目示例。 在 GitLab 17.2 中引入
APISEC_PRE_SCRIPT 在扫描会话开始前运行用户命令或脚本。对于安装软件包等特权操作,必须使用 sudo
APISEC_POST_SCRIPT 在扫描会话结束后运行用户命令或脚本。对于安装软件包等特权操作,必须使用 sudo
APISEC_OVERRIDES_INTERVAL 覆盖命令的运行间隔(秒)。默认为 0(一次)。
APISEC_HTTP_USERNAME HTTP 认证的用户名。
APISEC_HTTP_PASSWORD HTTP 认证的密码。建议使用 APISEC_HTTP_PASSWORD_BASE64 替代。
APISEC_HTTP_PASSWORD_BASE64 Base64 编码的 HTTP 认证密码。在 GitLab 15.4 中引入
APISEC_SERVICE_START_TIMEOUT 等待目标 API 可用的时间(秒)。默认为 300 秒。
APISEC_TIMEOUT 等待 API 响应的时间(秒)。默认为 30 秒。
APISEC_SUCCESS_STATUS_CODES 指定逗号分隔(,)的 HTTP 成功状态码列表,用于确定 API 安全测试扫描作业是否通过。在 GitLab 17.1 中引入。示例:'200, 201, 204'

配置文件

为了帮助您快速开始,GitLab 提供了配置文件 gitlab-dast-api-config.yml。 该文件包含多个测试配置文件,执行不同数量的测试。每个配置文件的运行时间随测试数量增加而增加。要使用配置文件,请将其添加到您仓库的根目录下,命名为 .gitlab/gitlab-dast-api-config.yml

配置文件

以下配置文件在默认配置文件中预定义。可以通过创建自定义配置来添加、删除和修改配置文件。

Passive

  • 应用程序信息检查
  • 明文认证检查
  • JSON 劫持检查
  • 敏感信息检查
  • 会话 Cookie 检查

Quick

  • 应用程序信息检查
  • 明文认证检查
  • 框架调试模式检查
  • HTML 注入检查
  • 不安全的 HTTP 方法检查
  • JSON 劫持检查
  • JSON 注入检查
  • 敏感信息检查
  • 会话 Cookie 检查
  • SQL 注入检查
  • 令牌检查
  • XML 注入检查

Full

  • 应用程序信息检查
  • 明文认证检查
  • CORS 检查
  • DNS 重新绑定检查
  • 框架调试模式检查
  • HTML 注入检查
  • 不安全的 HTTP 方法检查
  • JSON 劫持检查
  • JSON 注入检查
  • 开放重定向检查
  • 敏感文件检查
  • 敏感信息检查
  • 会话 Cookie 检查
  • SQL 注入检查
  • TLS 配置检查
  • 令牌检查
  • XML 注入检查