Teilen über


„dotnet restore“ erzeugt Sicherheitsrisikowarnungen

Der dotnet restore-Befehl, mit dem die Abhängigkeiten und Tools eines Projekts wiederhergestellt werden, erzeugt jetzt standardmäßig Sicherheitsrisikowarnungen.

Vorheriges Verhalten

Bisher hat dotnet restore nicht standardmäßig Sicherheitsrisikowarnungen ausgegeben.

Neues Verhalten

Wenn Sie mit dem .NET 8-SDK oder einer höheren Version entwickeln, wird dotnet restore standardmäßig Sicherheitsrisikowarnungen für alle wiederhergestellten Projekte generieren. Wenn Sie eine Lösung oder ein Projekt laden oder ein CI/CD-Skript ausführen, kann diese Änderung ihren Workflow unterbrechen, wenn Sie <TreatWarningsAsErrors> aktiviert haben.

Eingeführt in Version

.NET 8 Vorschauversion 4

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Viele Benutzer möchten wissen, ob die Pakete, die sie wiederherstellen, bekannte Sicherheitsrisiken enthalten. Diese Funktion wurde sehr oft angefragt. Sicherheitsbedenken werden von Jahr zu Jahr größer, und einige bekannte Sicherheitsprobleme sind nicht sichtbar genug, um sofortige Maßnahmen zu ergreifen.

Die in den empfohlenen Aktionen genannten Eigenschaften können entweder in Der Projektdatei (z. B. *.csproj- oder *.fsproj-Datei) oder Directory.Build.props Datei festgelegt werden.

  • Um die Wahrscheinlichkeit, dass Ihr Build aufgrund von Warnungen fehlschlägt, deutlich zu verringern, können Sie die Verwendung von <TreatWarningsAsErrors> in Betracht ziehen, und <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> festlegen, um sicherzustellen, dass bekannte Sicherheitsrisiken in Ihrer Umgebung weiterhin zugelassen sind.

    <PropertyGroup>
      ...
      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
      <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
    </PropertyGroup>
    
  • Wenn Sie eine andere Sicherheitsüberwachungsstufe festlegen möchten, fügen Sie Ihrer Projektdatei die <NuGetAuditLevel>-Eigenschaft mit möglichen Werten von low, moderate, high und critical hinzu.

    <PropertyGroup>
      ...
      <NuGetAuditLevel>low</NuGetAuditLevel>
    </PropertyGroup>
    
  • Wenn Sie diese Warnungen ignorieren möchten, können Sie <NoWarn> verwenden, um NU1901-NU1904-Warnungen unterdrücken.

    <PropertyGroup>
      ...
      <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn>
    </PropertyGroup>
    
  • Um das neue Verhalten vollständig zu deaktivieren, können Sie die <NuGetAudit>-Projekteigenschaft auf false festlegen.

    <PropertyGroup>
      ...
      <NuGetAudit>false</NuGetAudit>
    </PropertyGroup>
    

Weitere Informationen