Sdílet prostřednictvím


Dotnet restore audituje tranzitivní balíčky.

Příkazdotnet restore, který obnoví závislosti projektu, teď vytvoří upozornění ohrožení zabezpečení pro tranzitivní balíčky ve výchozím nastavení, když projekt cílí na .NET 10 nebo novější verzi.

Předchozí chování

NuGetAudit byl zaveden v .NET 8, aby vygeneroval upozornění pro balíčky se známými ohroženími zabezpečení. Ve výchozím nastavení byly auditovány pouze přímé odkazy na balíčky, ale bylo možné změnit NuGetAuditMode vlastnost tak, aby zahrnovala všechny balíčky.

Ve verzi Preview .NET 9 se výchozí nastavení NuGetAuditMode se změnilo na all pro všechny projekty a tato změna byla vrácena zpět na direct v sadě .NET 9.0.101 SDK.

Nové chování

Pokud projekty cílí na .NET 10 nebo vyšší, pak se NuGetAuditMode nastaví na all jako výchozí hodnota, pokud nebyla explicitně nastavena. Toto nastavení znamená, že tranzitivní balíčky (závislosti balíčků, na které váš projekt přímo odkazuje) se známými zranitelnostmi zabezpečení nyní způsobují varování. Pokud váš projekt považuje upozornění za chyby, může toto chování způsobit selhání obnovení.

Pokud projekt cílí na .NET 9 nebo nižší, zůstane NuGetAuditMode výchozí hodnota direct.

Verze byla představena

.NET 10 Preview 3

Typ zásadní změny

Tato změna je změna chování.

Důvod změny

Balíčky se známými ohroženími zabezpečení můžou způsobit zneužití aplikace, i když váš projekt přímo neodkazuje na ohrožený balíček nebo ho přímo nepoužívá.

  • Chcete-li zabránit tomu, aby se upozornění auditu považovala za chyby, i když používáte <TreatWarningsAsErrors>, můžete použít <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904;$(WarningsNotAsErrors)</WarningsNotAsErrors>.

  • Pomocí nástrojů, jako je dotnet nuget why, najděte balíček nejvyšší úrovně, který způsobil zahrnutí přechodného balíčku se známou zranitelností, a pokuste se ho upgradovat, abyste zjistili, jestli přechodná zranitelnost zmizí. Pokud ne, zvyšte úroveň tranzitivního balíčku na balíček nejvyšší úrovně přidáním balíčku PackageReference a upgradujte ho na novější verzi.

  • Pokud chcete potlačit konkrétní rady, můžete do souboru projektu přidat <NuGetAuditSuppress Include="url" /> položku, kde url je adresa URL hlášená v upozornění NuGetu.

    <ItemGroup>
        <NuGetAuditSuppress Include="url" />
    </ItemGroup>
    
  • Pokud chcete být upozorněni pouze na přímé odkazy na balíčky se známými ohroženími zabezpečení, můžete v souboru projektu nastavit <NuGetAuditMode> na direct.

    <PropertyGroup>
      <NuGetAuditMode>direct</NuGetAuditMode>
    </PropertyGroup>
    

Viz také