跳到正文istheinternetok

你的仓库还好吗?

检查任何 GitHub 仓库的依赖有没有漏洞

粘贴一个公开的 GitHub 仓库。我们读取它最新提交中的每个锁文件,把每个固定版本与所有已知漏洞比对,告诉你先更新什么。免费,无需账号,无需安装。

试试:vercel/next.jsJavaScriptpallets/flaskPythonastral-sh/ruffRustkubernetes/kubernetesGorails/railsRubybitwarden/server.NETphoenixframework/phoenixElixirimmich-app/immichDart, TypeScript

读取哪些文件

14 个生态中的 30 种锁文件格式和 7 种清单格式。每个文件夹都会读取,monorepo 和 workspace 也不例外。项目没有锁文件时,我们读取其清单固定的确切版本。无法检查的锁文件(如 CocoaPods 或 Conan 的)会在仓库页面上列出,绝不悄悄跳过。

JavaScript, TypeScriptnpm
package-lock.jsonnpm-shrinkwrap.jsonpnpm-lock.yamlyarn.lockbun.lockdeno.lockpackage.json
PythonPyPI
uv.lockpoetry.lockPipfile.lockpdm.lockpylock.tomlrequirements.txtrequirements.lockpixi.lockconda-lock.ymlpyproject.toml
Rustcrates.io
Cargo.lockCargo.toml
GoGo modules
go.mod
Java, KotlinMaven
gradle.lockfilemaven_install.jsonpom.xmllibs.versions.toml
.NETNuGet
packages.lock.jsonpackages.configpaket.lock.csproj.fsproj.vbprojDirectory.Packages.props
RubyRubyGems
Gemfile.lockgems.locked
PHPPackagist
composer.lock
Dart, FlutterPub
pubspec.lock
SwiftSwiftPM
Package.resolved
Elixir, ErlangHex
mix.lockrebar.lock
HaskellHackage
cabal.project.freeze
RCRAN
renv.lock
JuliaJulia
Manifest.toml

虚线框:清单文件,只在没有锁文件覆盖时读取。

实际读到多少

97% 到 100%

GitHub 自己的依赖图所列出的固定版本中,我们在 npm、PyPI、Cargo、Go、Pub 和 Swift 里读到的比例。在 77 个大型仓库上实测。

目前在 Packagist(95%)、RubyGems(92%)、NuGet(84%)和 Maven(62%)中偏低。

如何运作

  1. 读取最新提交中的锁文件

    在 GitHub 上按确切的提交读取每个文件夹里的每个锁文件:每个包固定的版本,以及是否只有开发工具在用。你的源代码从不读取。

  2. 把每个版本与所有已知漏洞比对

    每个版本都会在 OSV 中查询(它汇集了各个公开的安全公告数据库:GitHub、PyPI、RustSec、Go 等),也会在 CISA 的已被攻击者利用的漏洞清单中查询。

  3. 告诉你先更新什么

    影响你用户的排在前面,最严重的在最上方:要更新的包(往往是引入漏洞的直接依赖),以及修复它的版本。测试、示例、文档和开发工具单独列出,从不计入答案。

  4. 说明漏洞可能造成什么,而不是断定已经发生

    我们不检查你的代码是否调用了包中有漏洞的部分。页面上的漏洞是一个需要更新的版本,而不是项目可被攻击的证据。

  5. 始终保持最新

    新的提交会在下次访问时读取。新的安全公告在 OSV 发布后几分钟内就会到达它影响的每个仓库。

给你的 README 加个徽章

每个仓库的页面都会给你一个徽章,显示它的答案,并随答案变化。把 owner/repo 换成你的仓库:

[![owner/repo 还好吗?](https://istheinternetok.com/r/owner/repo/badge.svg)](https://istheinternetok.com/r/owner/repo/)

给智能体和脚本用

同样的答案以 JSON 提供,无需密钥:/v1/repos/owner/repo。也可作为 MCP 工具 check_repo 使用:https://istheinternetok.com/mcp。智能体需要知道的一切都在 /skill.md。

curl -s https://istheinternetok.com/v1/repos/vercel/next.js

常见问题

能检查私有仓库吗?

不能。只读取公开的 GitHub 仓库,和任何人看到的一样。从不要求任何私有内容。

会保存我的代码吗?

不会。从不读取源代码,只读取锁文件和清单文件。我们保存它们固定的包和版本列表以及答案,以便有新漏洞出现时重新检查仓库。

要花钱吗?

不要钱。无需账号,无需密钥:页面、徽章、API 和 MCP 工具都免费。

和 npm audit 或 Dependabot 有什么不同?

它从一个链接做同样的查询,什么都不用装,而且一次覆盖所有生态,不只是 npm。Dependabot 的警报只有仓库管理员看得到;这个页面谁都能看、能分享。它还会把只有测试和开发工具用到的部分单独列出。

页面上有漏洞,是不是说明我的项目被黑了?

不是。它表示项目固定的某个版本有已知漏洞,并说明这个漏洞可能让人做什么。我们不检查你的代码是否触及有漏洞的部分:先更新,需要时再细看。