'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.
Aanbevolen actie
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 eenPackageReference
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, waarurl
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>
opdirect
in uw projectbestand.<PropertyGroup> <NuGetAuditMode>direct</NuGetAuditMode> </PropertyGroup>