Compartilhar via


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.

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 como true 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.

APIs afetadas