代码是 Cursor 写的。生产环境谁来检查?
智能体擅长让东西跑起来,却不擅长发现自己暴露了什么:加了客户端前缀的环境变量、被当作静态资源提供的 .env 文件、没人加上的响应头。检测线上站点,再把清单交回给你的智能体。
免费,无需注册。基础检测只发送普通浏览器会发送的请求。
我们在用 Cursor 构建的网站上检查什么
- 严重免费检测
进入客户端打包文件的服务端密钥
放进 NEXT_PUBLIC_ 或 VITE_ 变量的密钥,会被编译进每位访客都会下载的 JavaScript。我们会查找 Stripe、OpenAI、Anthropic、AWS、GitHub 等密钥格式。
- 严重Pro
可通过 HTTP 访问的 .env 或 .git
验证域名后,我们会请求少量常见路径,例如 /.env 和 /.git/config——这些文件会一次性交出所有密码。
- 中免费检测
Content-Security-Policy 过弱或缺失
没有策略,或者策略里带着 unsafe-inline,几乎拦不住什么。我们会指出削弱它的是哪条指令。
- 低免费检测
响应头暴露了服务器版本
这些响应头直接告诉攻击者该去查哪个框架的哪个版本。
或者让 Cursor 自己运行检测
把 ScanYourSite 作为 MCP 服务器接入,让你的智能体检测网站并修复发现的问题。或者把任意一份报告里的提示词复制到对话中。
修复 app.example.com 上的这些问题。 1. _next/static/chunks/app-4e2.js 中有 Stripe 私密密钥(sk_live_…9Kq)。 它来自 NEXT_PUBLIC_STRIPE_KEY。在 Stripe 中轮换该密钥,把变量重命名为不带 NEXT_PUBLIC_ 前缀的名字,并只在 route handler 中使用。 2. Content-Security-Policy 允许脚本使用 'unsafe-inline'。 改为在 middleware 中使用 nonce。 完成后重新检测:https://scanyoursite.app/zh?check=app.example.com
每次合并都可能撤销一个修复
开通 Pro 后,我们会察觉每一次新部署并在几分钟内检测;你也可以在 CI 中调用我们的部署钩子。只有出现新问题时,你才会收到我们的消息。
查看方案常见问题
怎么接入 Cursor?
在账户中创建一个 API 令牌,并把 ScanYourSite 添加为 MCP 服务器。之后你的智能体就能列出你的站点、发起检测并读取报告。
为什么 .env 和 .git 只检查少量路径?
探测服务器超出了浏览器的行为范围,所以我们只在你已证明归你所有的域名上这样做,而且只针对一小份已知泄露清单。
会扫描我的代码仓库吗?
不会。我们检测的是线上站点。这样能发现真正发布出去的内容,不管仓库里写的是什么。
粘贴网址,大约一分钟拿到清单。
每条发现都会说明它对你意味着什么、该如何修复——或者给你一段 AI 编程工具可以直接执行的提示词。
免费,无需注册。基础检测只发送普通浏览器会发送的请求。