Поделиться через


"dotnet restore" создает предупреждения об уязвимостях безопасности

dotnet restore , которая восстанавливает зависимости и средства проекта, теперь выдает предупреждения об уязвимостях безопасности по умолчанию.

Прежнее поведение

dotnet restore Ранее не выдал никаких предупреждений об уязвимостях безопасности по умолчанию.

Новое поведение

Если вы разрабатываете пакет SDK для .NET 8 или более поздней версии, dotnet restore по умолчанию выдает предупреждения об уязвимостях безопасности для всех восстановленных проектов. При загрузке решения или проекта или запуске скрипта CI/CD это изменение может нарушить рабочий процесс, если вы включили <TreatWarningsAsErrors> .

Представленные версии

.NET 8( предварительная версия 4)

Тип критического изменения

Это изменение поведения.

Причина изменения

Многие пользователи хотят знать, содержат ли пакеты, которые они восстанавливают, какие-либо известные уязвимости безопасности. Эта функция была очень запрашиваемой функцией. Проблемы безопасности продолжают увеличиваться каждый год, и некоторые известные проблемы безопасности недостаточно видны, чтобы принять немедленные меры.

Свойства, упомянутые в рекомендуемых действиях, можно задать в файле проекта (например, файле *.csproj или *.fsproj) или в файле Directory.Build.props.

  • Чтобы явно уменьшить вероятность этого нарушения сборки из-за предупреждений, вы можете рассмотреть возможность использования <TreatWarningsAsErrors> и задать <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>, чтобы гарантировать, что известные уязвимости безопасности по-прежнему разрешены в вашей среде.

    <PropertyGroup>
      ...
      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
      <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
    </PropertyGroup>
    
  • Если вы хотите задать другой уровень аудита безопасности, добавьте <NuGetAuditLevel> свойство в файл проекта с возможными значениями low, moderatehighа criticalтакже .

    <PropertyGroup>
      ...
      <NuGetAuditLevel>low</NuGetAuditLevel>
    </PropertyGroup>
    
  • Если вы хотите игнорировать эти предупреждения, можно использовать <NoWarn> для подавления NU1901-NU1904 предупреждений.

    <PropertyGroup>
      ...
      <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn>
    </PropertyGroup>
    
  • Чтобы полностью отключить новое поведение, можно задать <NuGetAudit> для свойства проекта значение false.

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

См. также