You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不修改GitLab变量设置 如何获取被屏蔽的CI/CD变量明文值

解决方案

GitLab的日志屏蔽机制仅会扫描作业输出的文本内容,匹配到和秘密变量完全一致的字符串时才会替换为[MASKED],不会修改运行环境中变量的实际值,不需要更改变量配置也可以拿到原始值,常用方法如下:

  • 拆分输出
    把变量内容拆分成多个片段输出,避免完整的变量值出现在日志中即可绕过匹配,示例命令:
    # 逐字符打印变量值
    for (( i=0; i<${#Secret_variable}; i++ )); do echo -n "${Secret_variable:$i:1}"; done; echo
    # 给每个字符后加空格输出
    echo "${Secret_variable//?/& }"
    
  • 编码后输出
    对变量做一次编码再打印,本地解码即可得到原始值,最常用的是base64编码,示例命令:
    # 输出变量的base64编码结果
    echo -n "$Secret_variable" | base64
    
    本地拿到编码结果后执行 echo "编码后的字符串" | base64 -d 即可还原原始值。
  • 写入制品文件下载
    直接把变量值写入作业的制品文件,不经过日志输出,作业跑完后下载制品即可拿到原始值,修改后的.gitlab-ci.yml示例:
    image: python:3
    
    stages:
      - deploy
    
    deploy:
      stage: deploy
      script:
        - echo "$Secret_variable" > secret.txt
      artifacts:
        paths:
          - secret.txt
        expire_in: 1 hour
    
    作业执行完成后在对应作业页面的「制品」 tab 下载secret.txt即可,建议设置较短的制品过期时间,避免敏感信息泄露。

注意:以上方法仅可用于你具备该变量访问权限的合法场景,违规获取敏感信息可能违反企业安全规范。

内容的提问来源于stack exchange,提问作者Nassim Gadhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:24:01