"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
,moderate
high
аcritical
также .<PropertyGroup> ... <NuGetAuditLevel>low</NuGetAuditLevel> </PropertyGroup>
Если вы хотите игнорировать эти предупреждения, можно использовать
<NoWarn>
для подавленияNU1901-NU1904
предупреждений.<PropertyGroup> ... <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn> </PropertyGroup>
Чтобы полностью отключить новое поведение, можно задать
<NuGetAudit>
для свойства проекта значениеfalse
.<PropertyGroup> ... <NuGetAudit>false</NuGetAudit> </PropertyGroup>