Редактирование запроса URI и фрагмента в журналах IHttpClientFactory
В .NET 9 реализация IHttpClientFactory по умолчанию была изменена для обработки строк запроса при ведении журнала URI. Эта перемена повышает конфиденциальность, предотвращая регистрацию потенциально конфиденциальной информации в строках запроса, сведя затраты на производительность к минимуму. В сценариях, когда строки запроса ведения журнала необходимы и считаются безопасными, можно переопределить это поведение.
Представленные версии
.NET 9( предварительная версия 7)
Прежнее поведение
Ранее реализация IHttpClientFactory
ведения журнала по умолчанию включала строки запроса в передаваемые сообщения ILogger, которые могут непреднамеренно предоставлять конфиденциальную информацию.
Новое поведение
Сообщения, передаваемые в ILogger, теперь имеют часть запроса и фрагмента замененную символом *
.
Тип критического изменения
Причина изменения
Основная причина этого изменения заключается в повышении конфиденциальности путем снижения риска ведения журнала конфиденциальной информации. Строки запросов часто содержат конфиденциальные данные и исключают их из журналов по умолчанию, что помогает защитить эти сведения. Чтобы обеспечить простую и эффективную реализацию, часть фрагмента также очищается.
Рекомендуемое действие
Если приложение использует строки запросов для ведения журнала, и вы уверены, что это безопасно, вы можете включить ведение журнала строк запроса глобально, задав переключатель AppContext одним из трех способов:
В файле проекта.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>
В файле runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }
С помощью переменной среды.
Задайте для
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION
значениеtrue
или 1.
В противном случае никаких действий не требуется, а поведение по умолчанию поможет улучшить аспекты конфиденциальности приложения.
Примечание.
Этот параметр также отключает изменение строки запроса в HttpClient
событиях EventSource. Дополнительные сведения см. в разделе о редакте запроса URI в событиях HttpClient EventSource.