surfacecheckv0.2.0

一次看清四处攻击面:仓库里的明文凭据(含 git 历史)、线上证书、安全响应头、依赖漏洞。 结果按「能不能立刻被利用」排序,不是按字母排序。

0 依赖 150 个测试 Node ≥20 浏览器里也是本地跑

在这里直接试

粘贴配置 / .env / 日志 / diff,或把文件拖进来
这段文字不会离开你的浏览器。
还没有内容。粘贴一段,或点「放一段示例」。

命令行里更全

# 扫当前仓库(连 git 历史一起),再体检线上站点
npx surfacecheck . --url https://example.com

# 只扫线上,不碰本地代码
npx surfacecheck --url example.com

# CI 里用:有「严重」就以退出码 1 失败
npx surfacecheck . --json --fail-on critical

为什么扫 git 历史

泄露最常发生的位置不是当前代码,而是三年前那个已经删掉的 commit。只扫工作区等于给自己发一张假的安全证明。

为什么报告里是打码的

报告本身不能变成新的泄露源。输出只保留前 4 位和长度——够你定位是哪把 key,不够别人拿去用。

依赖漏洞要命令行

查 OSV 需要读锁文件、发网络请求,浏览器做不到。命令行里 surfacecheck . 会自动带上。

证书按剩余寿命判

不写死「30 天内过期」。Let's Encrypt 2027 年起有效期缩到 64 天,按固定天数写的告警要么太晚,要么一直在响。