digitalcoyote/NuGetDefense

GitHub: digitalcoyote/NuGetDefense

NuGetDefense 是一个 MSBuild 任务,在 .NET 项目构建期间自动扫描 NuGet 包及其传递依赖中的已知漏洞,支持按严重程度中断构建。

Stars: 99 | Forks: 20

# [![NuGetDefense](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/8c06a7d395193344.png)](https://digitalcooyote.github.io/NuGetDefense/) 一个用于检查已知漏洞的 MSBuildTask。灵感来自 [OWASP SafeNuGet](https://github.com/OWASP/SafeNuGet)。 ## 文档 在[此处](https://digitalcoyote.github.io/NuGetDefense/)查看 NuGetDefense 的完整文档 5.x 预览版文档可以通过运行 `dotnet /path/to/NuGetDefense.dll -?` 来获取 ## 功能 * 使用多种来源检查第三方库(NuGet 包)中的已知漏洞 * [OSS Index](https://ossindex.sonatype.org/) * [国家漏洞数据库](https://nvd.nist.gov/)(可选自更新) * 本产品使用了 NVD API,但未获得 NVD 的认可或认证。 * [GitHub 安全公告数据库](https://nvd.nist.gov/) * 简单的安装/配置:只需安装 [NuGet 包](https://www.nuget.org/packages/NuGetDefense/)即可。 * dotnet 全局工具,适合那些希望手动运行或仅在 CI 中运行的用户 * 传递依赖检查 * 仅支持 SDK 风格的项目(dotnet cli 不支持旧的项目格式) * 使用构建时由 dotnet cli 解析出的版本 * 项目引用扫描 * 通过将 NuGet Defense 安装到顶层包,扫描层级结构中的所有项目 * 允许根据漏洞的严重程度中断构建。 * 忽略特定的漏洞/包。 * 敏感/内部包过滤 * 不将敏感/内部的包发送到远程漏洞源 * 缓存机制,以防止过度调用并触发 API 的速率限制 * 将 NuGet 包加入黑名单 * 将 NuGet 包加入白名单 * MIT 许可证 * 可用的 NuGet 包,支持将 NuGetDefense 扫描器捆绑到你自己的软件中 ## 环境要求 * NuGetDefense v4.x 仅基于 .Net 8.0 构建,因此你需要安装相应的 runtime/SDK。 * NuGetDefense v5.x 仅基于 .Net 10.0 构建,因此你需要安装相应的 runtime/SDK。 ## 不受支持的版本 * 官方支持与其底层框架的支持情况保持一致。 * 支持者可以请求对不受支持的版本提供支持(例如在 .Net 5 上运行的 v2.x),但建议使用 受支持的 runtime(以获得更好的整体安全性) * 只要安装了 .Net 8 runtime,较旧的 .Net 项目就可以使用 4.x 版本。 ## 它是如何工作的? NuGetDefense 是一个打包的 dotnet 工具,它会在你的项目 完成构建后,通过 [MSBuild ExecTask](https://docs.microsoft.com/en-us/visualstudio/msbuild/exec-task?view=vs-2019) 来运行。 ## 喜欢它?支持它 你可以在 [Github](https://github.com/sponsors/digitalcoyote) 和 [Patreon](https://www.patreon.com/codingcoyote) 上赞助这个项目。这些资金将用于支付软件许可费用,以及维持我项目运行所需的云服务/硬件成本。
标签:macOS, MSBuild, NuGet, XML 请求, 依赖安全, 安全开发