Remoção de consultas e fragmentos de URI nos logs de IHttpClientFactory
No .NET 9, a implementação padrão de foi modificada para limpar cadeias de caracteres de consulta ao registrar informações de IHttpClientFactory URI. Essa alteração aprimora a privacidade impedindo o registro em log de informações potencialmente confidenciais contidas em cadeias de caracteres de consulta, mantendo os custos de desempenho da redação mínimos. Para cenários em que o registro em log de cadeias de caracteres de consulta é necessário e considerado seguro, você pode substituir esse comportamento.
Versão introduzida
.NET 9 Preview 7
Comportamento anterior
Anteriormente, a implementação padrão do log incluía cadeias de IHttpClientFactory
caracteres de consulta nas mensagens passadas para ILogger, o que poderia expor inadvertidamente informações confidenciais.
Novo comportamento
As mensagens passadas para ILogger agora têm a parte de consulta e fragmento substituída por um caractere *
.
Tipo de alteração interruptiva
Esta é uma alteração comportamental.
Motivo da alteração
O principal motivo para essa mudança é aumentar a privacidade, reduzindo o risco de informações confidenciais serem registradas inadvertidamente. As cadeias de caracteres de consulta geralmente contêm dados confidenciais e excluí-los dos logs por padrão ajuda a proteger essas informações. Para manter a implementação simples e eficiente, a parte do fragmento também é removida.
Ação recomendada
Se o aplicativo depender do registro em log de cadeias de caracteres de consulta e você tiver certeza de que é seguro fazer isso, poderá habilitar o log de cadeia de caracteres de consulta globalmente definindo uma opção AppContext de uma das três maneiras:
No arquivo de projeto.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>
No arquivo runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }
Por meio de uma variável de ambiente.
Defina
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION
comotrue
ou 1.
Caso contrário, nenhuma ação será necessária e o comportamento padrão ajudará a aprimorar os aspectos de privacidade do seu aplicativo.
Observação
Essa opção também desabilita a redação de cadeia de caracteres de consulta em HttpClient
eventos EventSource. Para obter mais informações, consulte Redação de consulta de URI em eventos HttpClient EventSource.