AI 编程大行其道, 如何避免项目密钥泄露? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
stinkytofux
6.09D
V2EX    程序员

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

  •  
  •   stinkytofux 10 小时 40 分钟前 1601 次点击

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

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

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

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

    如果使用了 CICD 的话,一般会放到项目仓库的 Secret 里面。后端一般是放到 Nacos 里面配置。
    TArysiyehua
        7
    TArysiyehua  
       10 小时 13 分钟前
    @stinkytofux 首先你个人项目小公司无所谓了吧?
    然后就是,总是通过服务器,环境变量来读取,现在 AI 变成都是通过 Agent 来编程的,它执行的命令要获取真实的秘钥也并不是什么难事。
    最保险的还是测试密钥跟线上密钥分开
    bbao
        8
    bbao  
       9 小时 32 分钟前
    1 ,配置文件里目前是不安全的;开发同学不掌握线上或者测试环境任何 key
    2 ,运维部署时,扩写配置文件,由运维侧来维护和统一管理 key ,代码会提交到 git 仓库,只会在服务器中查看配置
    3 ,更安全的方式,通过环境变量的方式进行设置。在部署脚本中维护,代码依旧提交到 git 仓库。(推荐)
    lyxxxh2
        9
    lyxxxh2  
       9 小时 31 分钟前   1
    .claude/settings.local.json
    设置拒绝读取的文件。
    Msxx
        10
    Msxx  
       9 小时 24 分钟前 via Android
    我都是丢 github 仓库,项目各种 API 都是跟着仓库跑,靠换 key 解决。
    ratazzi
        11
    ratazzi  
       9 小时 6 分钟前
    https://mise.jdx.dev/environments
    mise 内置 age 加密
    Aleks
        12
    Aleks  
       7 小时 6 分钟前
    最佳实践:密钥不能硬编码在项目里,需要配置在部署的环境变量中。
    Amareni
        13
    Amareni  
       6 小时 6 分钟前 via Android
    AI 给我的建议是配置 Cloudflare Worker(AI 辅助下半小时就配置好测试)
    sikong31
        14
    sikong31  
       5 小时 55 分钟前
    @bbao 具体怎么弄呢?开发不还是需要 key ,总得暴露出来认证吧,环境变量那也是写到文件运行,他就是躺在电脑上。我都用对称加密,但是怕忘记麻烦还是有一份明文密码放 U 盘,现在干脆不用集成的 AI 服务,都自己小片段的用网页 AI ,太麻烦了
    BenjaminSu
        16
    BenjaminSu  
       5 小时 40 分钟前 via Android   1
    终于有人意识到这个问题了。所以我目前一直坚持聊天编程
    wpblank
        17
    wpblank  
       5 小时 36 分钟前
    开发环境的项目全部单起一套需要密钥的服务呗。
    uni
        18
    uni  
       3 小时 45 分钟前
    用 dotnet 吧,自带的 secret manager 才是最佳实践,只要不要不小心在日志里打出来就基本不会有事
        19
    x2ve  
       2 小时 36 分钟前
    放环境变量或者库里头,测试跟线上分开,这样 ai 读了也没太大影响。
    reallittoma
        20
    reallittoma  
       1 小时 37 分钟前
    开发环境密钥随便读,部署后换一个就好了。
    gadfly3173
        21
    gadfly3173  
       43 分钟前
    如果是 spring ,把密钥放在 nacos 里之类的配置中心就行了。或者让运维放在容器的 bootstrap.yml 里什么的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1041 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 18:18 PVG 02:18 LAX 10:18 JFK 13:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86