Consulta de URI e remoção de fragmentos em logs IHttpClientFactory
No .NET 9, a implementação padrão do foi modificada para limpar cadeias de caracteres de consulta ao registrar informações de IHttpClientFactory URI. Essa alteração aumenta a privacidade, impedindo o registro 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 Visualização 7
Comportamento anterior
Anteriormente, a implementação padrão do registro em log incluía cadeias de caracteres de IHttpClientFactory
consulta nas mensagens passadas para ILogger, que podiam expor inadvertidamente informações confidenciais.
Novo comportamento
As mensagens passadas para ILogger agora têm a parte da consulta e do fragmento substituída por um caractere *
.
Tipo de mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
A principal razão para esta alteração é melhorar a privacidade, reduzindo o risco de informações confidenciais serem registadas 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 é purgada.
Ação recomendada
Se seu aplicativo depende de cadeias de caracteres de consulta de log e você tem certeza de que é seguro fazer isso, você pode habilitar o log de cadeia de caracteres de consulta globalmente definindo uma opção AppContext de uma das três maneiras:
No arquivo do projeto.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>
No arquivo runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }
Através 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 melhorar os aspetos de privacidade do seu aplicativo.
Nota
Essa opção também desabilita a redação da cadeia de caracteres de consulta em HttpClient
eventos EventSource. Para obter mais informações, consulte Redação de consulta URI em eventos HttpClient EventSource.