七步排查自己网站有没有泄露 API 密钥
网站发给浏览器的一切,包括 HTML、JS 打包文件、source map 和留在 web 根目录里的文件,每个访客都能读到,所以要用陌生人的视角查线上站。
要点
- 先分清哪些 key 本来就该公开:Supabase 的 anon、Stripe 的 pk_live_、Firebase web config 出现在前端是正常的;service_role、sk_live_、whsec_、sk-、AKIA、ghp_ 出现在前端就是泄露
- 打开线上站,DevTools → Sources,Ctrl+Shift+F 全局搜 sk_live_、service_role、AKIA 这类串;压缩混淆不会隐藏 key
- 本地构建后 grep dist/、.next/static/、build/;VITE_、NEXT_PUBLIC_、EXPO_PUBLIC_ 前缀的变量按设计会进浏览器包,不能放 secret
- 直接访问 /.env、/.git/config、.npmrc,给任意 .js 加上 .map 看 source map 是否公开;旧 commit 里的 key 用 gitleaks 或 TruffleHog 扫
- 找到就先在服务商处吊销重发,再把调用挪进服务端,只从代码里删掉不够
阅读原文这里是中文要点整理,数字与细节以原文为准。
评论
还没有评论,来写第一条。