V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
stinkytofux
6.09D
V2EX  ›  程序员

AI 编程大行其道, 如何避免项目密钥泄露?

  •  
  •   stinkytofux · 18 小时 4 分钟前 · 2313 次点击

    问题 1: 因为早先没有意识到. 导致已经在好几个老项目中使用了 claude-code, gemini 这些工具, 所有项目文件都被扫过了. 这些模型会进行数据脱敏吗? 如果密钥泄露了非常棘手啊!

    问题 2: 开始新项目, 怎么避免项目配置文件中的密钥泄露? 有没有比较工程化又简单的方法?

    28 条回复    2025-12-30 09:40:53 +08:00
    pikko
        1
    pikko  
       18 小时 2 分钟前
    密钥也不放在 git 仓库里的啊
    stinkytofux
        2
    stinkytofux  
    OP
       18 小时 0 分钟前
    @pikko #1 小公司和我个人的项目也没那么严谨, 像 OSS 这些密钥直接就写配置文件中了. 现在意识到 AI 编程出问题了.
    sentinelK
        3
    sentinelK  
       18 小时 0 分钟前
    没什么诀窍,无非就是照本宣科:不要硬编码。通过服务获取。

    btw ,即便是最高风亮节的 Anthropic ,也只是声明了不会用用户的数据再训练。
    也就是说,他只能保证你的代码、数据不会被“自己的新模型”吐露给其他用户。但也仅此而已了。
    pikko
        4
    pikko  
       17 小时 57 分钟前
    @stinkytofux 配置文件读环境变量,另外一个单独的 sh 文件去赋予环境变量。这是常规操作吧。
    WuSiYu
        5
    WuSiYu  
       17 小时 56 分钟前
    每过几个月换个密钥就行了,就算被当作了训练数据也不会立刻反应到市面的模型中
    94
        6
    94  
       17 小时 44 分钟前
    直接用官方的 API 其实没必要担心,别人还看不上你这点小东西。使用你的数据去训练也不会说直接把你的密钥吐给其他用户(稍微理解一下原理就不会有这样的困扰了)。
    要是使用的中转站之类的才需要小心,以及一些使用上的引用问题 /t/1175066

    如果使用了 CICD 的话,一般会放到项目仓库的 Secret 里面。后端一般是放到 Nacos 里面配置。
    TArysiyehua
        7
    TArysiyehua  
       17 小时 37 分钟前
    @stinkytofux 首先你个人项目小公司无所谓了吧?
    然后就是,总是通过服务器,环境变量来读取,现在 AI 变成都是通过 Agent 来编程的,它执行的命令要获取真实的秘钥也并不是什么难事。
    最保险的还是测试密钥跟线上密钥分开
    bbao
        8
    bbao  
       16 小时 57 分钟前
    1 ,配置文件里目前是不安全的;开发同学不掌握线上或者测试环境任何 key
    2 ,运维部署时,扩写配置文件,由运维侧来维护和统一管理 key ,代码会提交到 git 仓库,只会在服务器中查看配置
    3 ,更安全的方式,通过环境变量的方式进行设置。在部署脚本中维护,代码依旧提交到 git 仓库。(推荐)
    lyxxxh2
        9
    lyxxxh2  
       16 小时 55 分钟前   ❤️ 3
    .claude/settings.local.json
    设置拒绝读取的文件。
    Msxx
        10
    Msxx  
       16 小时 49 分钟前 via Android
    我都是丢 github 仓库,项目各种 API 都是跟着仓库跑,靠换 key 解决。
    ratazzi
        11
    ratazzi  
       16 小时 30 分钟前
    https://mise.jdx.dev/environments
    mise 内置 age 加密
    Aleks
        12
    Aleks  
       14 小时 31 分钟前
    最佳实践:密钥不能硬编码在项目里,需要配置在部署的环境变量中。
    Amareni
        13
    Amareni  
       13 小时 31 分钟前 via Android
    AI 给我的建议是配置 Cloudflare Worker(AI 辅助下半小时就配置好➕测试)
    sikong31
        14
    sikong31  
       13 小时 20 分钟前
    @bbao 具体怎么弄呢?开发不还是需要 key ,总得暴露出来认证吧,环境变量那也是写到文件运行,他就是躺在电脑上。我都用对称加密,但是怕忘记麻烦还是有一份明文密码放 U 盘,现在干脆不用集成的 AI 服务,都自己小片段的用网页 AI ,太麻烦了
    BenjaminSu
        16
    BenjaminSu  
       13 小时 4 分钟前 via Android   ❤️ 1
    终于有人意识到这个问题了。所以我目前一直坚持聊天编程
    wpblank
        17
    wpblank  
       13 小时 1 分钟前
    开发环境的项目全部单起一套需要密钥的服务呗。
    uni
        18
    uni  
       11 小时 10 分钟前
    用 dotnet 吧,自带的 secret manager 才是最佳实践,只要不要不小心在日志里打出来就基本不会有事
    x2ve
        19
    x2ve  
       10 小时 1 分钟前
    放环境变量或者库里头,测试跟线上分开,这样 ai 读了也没太大影响。
    reallittoma
        20
    reallittoma  
       9 小时 2 分钟前
    开发环境密钥随便读,部署后换一个就好了。
    gadfly3173
        21
    gadfly3173  
       8 小时 7 分钟前
    如果是 spring ,把密钥放在 nacos 里之类的配置中心就行了。或者让运维放在容器的 bootstrap.yml 里什么的
    streamrx
        22
    streamrx  
       6 小时 31 分钟前 via iPhone
    开发和线上又不是一个环境
    busier
        23
    busier  
       5 小时 7 分钟前 via Android
    密钥也可以设置密码啊
    bk201
        24
    bk201  
       1 小时 0 分钟前
    私有部署必将盛行
    lysf0515
        25
    lysf0515  
       41 分钟前
    我和我老大说过这个事情,他说无所谓的,没啥事,要泄露早泄露了
    tiancaixiaoshuai
        26
    tiancaixiaoshuai  
       15 分钟前
    本地开个虚拟机,随便找个后端程序,只写一个获取 token 的方法,需要用密钥的时候访问这个后端,比如 192.168.1.2/?action=get_token ,再解析一下 json 不就可以了
    fcfangcc
        27
    fcfangcc  
       7 分钟前
    @bbao 开发环境不知道 key 你怎么测试?本地不测,直接发布到 QA 测吗
    zzxCNCZ
        28
    zzxCNCZ  
       2 分钟前
    一方面,密钥不硬编码在代码中,使用环境变量读取时基操。另一方面,你所有 ide ,插件,各种同步软件只要连上网了,都有泄露风险。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5644 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:43 · PVG 09:43 · LAX 17:43 · JFK 20:43
    ♥ Do have faith in what you're doing.