找出你的网站白白送出去的 API 密钥
前端里的一切都会被每位访客下载——包括你为了让某个功能跑起来而粘贴进去的密钥。我们扫描页面及其加载的脚本,查找已知的私密密钥格式,并告诉你它们在哪里。
免费,无需注册。基础检测只发送普通浏览器会发送的请求。
我们能识别的密钥
- 严重免费检测
支付与云服务密钥
Stripe 私密密钥和受限密钥、AWS 访问密钥、GitHub 令牌、私钥。
- 严重免费检测
AI 服务商密钥
OpenAI 和 Anthropic 的 API 密钥与管理员密钥——几小时内就可能变成一张意外账单。
- 严重免费检测
后端与消息服务密钥
Supabase service_role 和 secret 密钥、Clerk 私密密钥,以及 SendGrid、Mailgun、Twilio 和 Slack 令牌。
- 提示免费检测
本来就该公开的密钥
Supabase anon 和 publishable 密钥、Google 浏览器密钥——作为提示列出,让你知道我们看到了它们,以及为什么它们没问题。
自己动手检查
陌生人能拿到的每个文件,你的浏览器里都已经有了。下面是手动搜索它们的方法。
打开页面加载的所有内容
打开你的线上网站,然后打开 DevTools → Sources(Chrome、Edge)或 Debugger(Firefox)。刷新页面,让所有脚本都列出来。
在所有文件中搜索密钥前缀
Cmd/Ctrl + Option/Alt + F 可以一次搜索所有已加载的文件。逐个试试下面这些前缀;一旦匹配,就值得仔细看看。
sk_live_ Stripe 私密密钥 rk_live_ Stripe 受限密钥 sk-proj- OpenAI sk-ant- Anthropic AKIA AWS 访问密钥 ghp_ GitHub 令牌 github_pat_ GitHub 细粒度令牌 xoxb- Slack 机器人令牌 SG. SendGrid service_role Supabase(解码 JWT) sb_secret_ Supabase secret 密钥 -----BEGIN 私钥
检查你的构建暴露了哪些变量
框架会有意把带有这些前缀的变量打包进浏览器端代码。放在其中任何一个前缀下的密钥都是公开的。
NEXT_PUBLIC_ Next.js VITE_ Vite, Lovable, Bolt REACT_APP_ Create React App PUBLIC_ Astro, SvelteKit EXPO_PUBLIC_ Expo
发现了?先吊销
假定它已经被复制。在服务商的控制台吊销或轮换它,然后把调用移到服务端函数中,重新部署,再搜索一遍。
密钥泄露了怎么办
先吊销,再把调用移到服务端。报告里的提示词会逐个文件地这样告诉你的 AI。
修复 shop.example 上的这些问题。 1. assets/chat-91b.js 中有 Anthropic API 密钥(sk-ant-…x7Q)。 在 Anthropic 控制台吊销它,把 API 调用移到服务端接口中,并在那里从环境变量读取密钥。 完成后重新检测:https://scanyoursite.app/zh?check=shop.example
密钥会回来
一次 AI 修改就可能把密钥又粘贴回去。开通 Pro 后,每次新部署都会在几分钟内接受密钥检测。
查看方案常见问题
你们会存储找到的密钥吗?
不会。报告中的密钥都打码显示——只有类型、开头和结尾的几个字符,以及所在文件。
从代码里删掉密钥就够了吗?
不够。一旦公开过,就当它已被复制:去服务商那里吊销它,再创建一个新的。
会扫描我的代码仓库吗?
不会——我们检测的是线上站点。攻击者看到的就是它。
粘贴网址,大约一分钟拿到清单。
每条发现都会说明它对你意味着什么、该如何修复——或者给你一段 AI 编程工具可以直接执行的提示词。
免费,无需注册。基础检测只发送普通浏览器会发送的请求。