Delen via


'dotnet restore' controleert transitieve pakketten

De dotnet restore opdracht, waarmee de afhankelijkheden en hulpprogramma's van een project worden hersteld, produceert nu standaard waarschuwingen voor beveiligingsproblemen voor transitieve pakketten.

Vorig gedrag

In .NET 8 is NuGetAudit geïntroduceerd om waarschuwingen te verzenden voor pakketten met bekende beveiligingsproblemen. Standaard zijn alleen directe pakketverwijzingen gecontroleerd, maar het was mogelijk om de NuGetAuditMode eigenschap te wijzigen om alle pakketten op te nemen.

Nieuw gedrag

Vanaf .NET 9 wordt NuGetAuditMode standaard ingesteld all of deze niet expliciet is ingesteld. Deze instelling betekent dat transitieve pakketten (afhankelijkheden van pakketten die uw project rechtstreeks verwijst) met bekende beveiligingsproblemen ertoe leiden dat waarschuwingen worden gerapporteerd. Als uw project fouten als waarschuwingen behandelt, kan dit gedrag herstelfouten veroorzaken.

Versie geïntroduceerd

.NET 9 Preview 6

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

Pakketten met bekende beveiligingsproblemen kunnen ertoe leiden dat uw app misbruikbaar is, zelfs als uw project niet rechtstreeks naar het kwetsbare pakket verwijst of het kwetsbare pakket gebruikt. Nieuwe functies in .NET 9 maken het ook gemakkelijker om de pakketgrafiek te onderzoeken en adviezen te onderdrukken die niet relevant zijn voor de wijze waarop uw app gebruikmaakt van het kwetsbare pakket.

  • Als u de waarschijnlijkheid van deze wijziging die uw build veroorzaakt door waarschuwingen expliciet wilt verminderen, kunt u rekening houden met uw gebruik en <TreatWarningsAsErrors> gebruik <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> om ervoor te zorgen dat bekende beveiligingsproblemen nog steeds in uw omgeving zijn toegestaan.

  • Gebruik hulpprogramma's zoals dotnet nuget why het pakket op het hoogste niveau dat ervoor zorgde dat het transitieve pakket met het bekende beveiligingsprobleem werd opgenomen, en probeer het te upgraden om te zien of het transitieve beveiligingsprobleem verdwijnt. Zo niet, promoveer het transitieve pakket naar een pakket op het hoogste niveau door er een PackageReference voor toe te voegen en het te upgraden naar een nieuwere versie.

  • Als u een specifiek advies wilt onderdrukken, kunt u item toevoegen <NuGetAuditSuppress Include="url" /> aan uw projectbestand, waar url is de URL die wordt gerapporteerd in het waarschuwingsbericht van NuGet.

    <ItemGroup>
        <NuGetAuditSuppress Include="url" />
    </ItemGroup>
    
  • Als u alleen wilt worden gewaarschuwd voor directe pakketverwijzingen met bekende beveiligingsproblemen, kunt u instellen <NuGetAuditMode> op direct in uw projectbestand.

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

Zie ook