“dotnet restore”生成安全漏洞警告

dotnet restore 命令 (还原项目的依赖项和工具) 现在默认生成安全漏洞警告。

旧行为

以前,dotnet restore 默认情况下不会发出任何安全漏洞警告。

新行为

如果使用 .NET 8 SDK 或更高版本进行开发,则默认情况下,dotnet restore会为所有还原的项目生成安全漏洞警告。 加载解决方案或项目,或者运行 CI/CD 脚本时,如果已启用 <TreatWarningsAsErrors>,则此更改可能会中断工作流。

引入的版本

.NET 8 预览版 4

中断性变更的类型

此更改为行为更改

更改原因

许多用户想知道他们还原的包是否包含任何已知的安全漏洞。 此功能是一项非常受欢迎的功能。 安全问题每年都在增加,而一些已知的安全问题还不够明显,无法立即采取修复措施。

  • 为了明确减少由于警告导致生成中断的概率,可以考虑使用 <TreatWarningsAsErrors>,并使用 <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> 来确保环境中仍允许已知的安全漏洞。

  • 如果要设置不同的安全审核级别,请将属性“<NuGetAuditLevel>”添加到项目文件中,其可能值为 lowmoderatehighcritical

  • 如果要忽略这些警告,可以使用 <NoWarn> 来禁止显示 NU1901-NU1904 警告。

  • 若要完全禁用新行为,可以将项目属性“<NuGetAudit>”设置为 false

另请参阅