TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.75K subscribers
Post #2416 2.61K
День 1997. #ЗаметкиНаПолях
Добавляем Аудит NuGet в Проекты .NET.

Аудит безопасности для менеджеров пакетов, таких как NuGet, является критически важным процессом для обеспечения безопасности программных проектов. В NuGet есть функция, которая вам поможет. Она может запустить аудит безопасности с помощью команды dotnet restore, которая сверяет ваши зависимости со списком известных уязвимостей из GitHub Advisory Database.

Если обнаружены уязвимости, вы можете обновить затронутые пакеты до более новой версии, содержащей исправления безопасности, или, если обновления недоступны, проверить, как обезопасить код или использовать альтернативный пакет.

Для аудита NuGet требуется .NET SDK 8.0.100 или более поздней версии. Чтобы включить аудит NuGet для ваших проектов .NET, добавьте в файл проекта следующие свойства:
<Project>
<PropertyGroup>
<NuGetAudit>true</NuGetAudit>
<!-- Прямые и транзитивные пакеты -->
<NuGetAuditMode>all</NuGetAuditMode>
<!-- Уровень уязвимостей для отчёта -->
<NuGetAuditLevel>low</NuGetAuditLevel>

<!-- Отменяем сборку в CI при обнаружении уязвимостей -->
<WarningsAsErrors Condition="$(ContinuousIntegrationBuild) == 'true' OR '$(Configuration)' == 'Release'">
(WarningsAsErrors);NU1900;NU1901;NU1902;NU1903;NU1904
</WarningsAsErrors>
</PropertyGroup>
</Project>

Вы также можете проверить наличие уязвимостей в своих проектах с помощью команды
dotnet list package --vulnerable.


Если вы пока не можете устранить уязвимость, можно отключить предупреждение для каждого пакета, используя NoWarn в элементе PackageReference. Если ссылка транзитивная, можно добавить прямую ссылку на пакет с уязвимостью:
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<PackageReference Include="System.Formats.Asn1" Version="8.0.0" NoWarn="NU1903" />
<PackageReference Include="System.Text.Json" Version="8.0.1" />
</ItemGroup>
</Project>

Если у вас глобально включены WarningsAsErrors в проекте, но вы не хотите такого поведения для уязвимостей, используйте WarningsNotAsErrors:
<Project>
<PropertyGroup>
<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
</PropertyGroup>
<Project>

Источник: https://www.meziantou.net/enable-nuget-auditing-for-your-dotnet-projects.htm
  • 👍 17
More from @netdeveloperdiary
  1. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  2. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  3. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  4. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  5. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
  6. Oct 3, 2026Post #3360
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →