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 注入检查