Compartir vía


Redacción de consultas y fragmentos de URI en los registros de IHttpClientFactory

En .NET 9, se ha modificado la implementación predeterminada de para limpiar las cadenas de IHttpClientFactory consulta al registrar información del URI. Este cambio mejora la privacidad evitando el registro de información potencialmente confidencial contenida en las cadenas de consulta, a la vez que mantiene los costos de rendimiento de la redacción mínima. En escenarios en los que se necesitan cadenas de consulta de registro y se consideran seguras, puede invalidar este comportamiento.

Versión introducida

.NET 9 Versión preliminar 7

Comportamiento anterior

Anteriormente, la implementación predeterminada del registro incluía cadenas de IHttpClientFactory consulta en los mensajes pasados a ILogger, lo que podría exponer accidentalmente información confidencial.

Comportamiento nuevo

Los mensajes pasados a ILogger ahora tienen la consulta y la parte de fragmento reemplazadas por un carácter *.

Tipo de cambio importante

Este es un cambio de funcionamiento.

Motivo del cambio

La razón principal de este cambio es mejorar la privacidad al reducir el riesgo de que la información confidencial se registre involuntariamente. Las cadenas de consulta suelen contener datos confidenciales y excluirlos de los registros de forma predeterminada ayuda a proteger esta información. Para que la implementación sea sencilla y eficaz, la parte del fragmento también se limpia.

Si la aplicación se basa en el registro de cadenas de consulta y está seguro de que es seguro hacerlo, puede habilitar el registro de cadenas de consulta globalmente estableciendo un modificador AppContext de una de estas tres maneras:

  • En el archivo del proyecto.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • En el archivo runtimeconfig.json.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • A través de una variable de entorno.

    Establezca DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION en true o 1.

De lo contrario, no se requiere ninguna acción y el comportamiento predeterminado ayudará a mejorar los aspectos de privacidad de la aplicación.

Nota:

Este modificador también deshabilita la reacción de cadenas de consulta en HttpClient eventos EventSource. Para obtener más información, consulte URI query redaction in HttpClient EventSource events (Reacción de consultas de URI en eventos EventSource httpClient).

API afectadas