密钥与机密信息
“Vibe coding”课程第 6 课,共 26 课。免费,有动画和小测验。
什么是 API 密钥
API 是你的程序和别人的服务(比如 AI 模型)沟通的方式。API 密钥就是这种沟通用的密码。服务靠它认出请求来自你,如果是付费服务,就从你的账户扣钱。陷阱在于:页面代码里的任何东西,访客都能通过“查看网页源代码”看到。
前端与服务器
前端是加载到访客浏览器里的一切:页面、按钮以及它们的代码,谁都能看。服务器(后端)是网上运行你程序的那台电脑,访客看不到它的代码。所以规则是:机密只放在服务器上。浏览器向服务器发请求,服务器带着密钥去调用服务,再只把结果交给浏览器。
绝不放在前端
放在页面代码或公开仓库里的密钥,很快就会被机器人找到。仓库就是项目文件夹,连同全部修改历史,比如放在 GitHub 上。公开意味着全网都能看到。机器人会自动扫描这些地方,别人的调用费用就要由你来付。所以带密钥的请求由服务器发出,浏览器只拿到结果。
Git 什么都记得
Git 是一个保存项目版本历史的程序。每次在它里面保存,叫作一次提交(commit)。陷阱在于:Git 什么都记得。密钥只要进过一次提交,就会留在历史里,哪怕之后从文件里删掉也一样。所以存放密钥的文件根本不能进 Git。怎么做到,看下一张。
密钥该放在哪
在自己电脑上,密钥放在 .env 文件里,这是一个存设置的普通文本文件。把它的文件名写进 .gitignore,也就是让 Git 忽略的文件清单,这样 .env 就不会进 Git。在托管平台(也就是放你网站的服务)上,密钥放进“机密”设置里。密钥泄露了?立刻在该服务的后台作废它,再生成一个新的。
自测一下
- API 密钥可以放在哪里?
正确答案: 托管平台的机密设置里,或 .env 文件里. 密钥绝不能进浏览器,也不能进 Git。藏在页面代码里的密钥,照样能通过“查看网页源代码”看到。 - 为什么要把 .env 写进 .gitignore?
正确答案: 让 .env 里的密钥不会进 Git. .gitignore 告诉 Git:别保存这个文件。这样密钥就不会出现在项目历史里。 - 密钥不小心泄露了,第一步做什么?
正确答案: 作废它,再生成一个新的. 密钥可能已经被复制,删除或隐藏都挽回不了。作废后的密钥对任何人都失效。