Condividi tramite


Redazione di query URI e frammenti nei log di IHttpClientFactory

In .NET 9 l'implementazione predefinita di è stata modificata per pulire le stringhe di IHttpClientFactory query durante la registrazione delle informazioni sull'URI. Questa modifica migliora la privacy impedendo la registrazione di informazioni potenzialmente riservate contenute nelle stringhe di query mantenendo al tempo stesso i costi di prestazioni della rimozione minima. Per gli scenari in cui la registrazione delle stringhe di query è necessaria e considerata sicura, è possibile eseguire l'override di questo comportamento.

Versione introdotta

.NET 9 Anteprima 7

Comportamento precedente

In precedenza, l'implementazione predefinita della IHttpClientFactory registrazione includeva stringhe di query nei messaggi passati a ILogger, che potrebbero esporre inavvertitamente informazioni riservate.

Nuovo comportamento

I messaggi passati a ILogger ora hanno la parte della query e del frammento sostituita da un carattere *.

Tipo di modifica che causa un'interruzione

Questa è una modifica funzionale.

Motivo della modifica

Il motivo principale di questa modifica è migliorare la privacy riducendo il rischio di registrazione accidentale delle informazioni riservate. Le stringhe di query contengono spesso dati sensibili ed esclusi dai log per impostazione predefinita consentono di proteggere queste informazioni. Per mantenere l'implementazione semplice ed efficiente, anche il frammento viene eliminato.

Se l'applicazione si basa sulla registrazione di stringhe di query e si è certi che sia sicuro farlo, è possibile abilitare la registrazione delle stringhe di query a livello globale impostando un'opzione AppContext in uno dei tre modi seguenti:

  • Nel file di progetto.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • Nel file runtimeconfig.json.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • Tramite una variabile di ambiente.

    Impostare DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION su true o 1.

In caso contrario, non è necessaria alcuna azione e il comportamento predefinito contribuirà a migliorare gli aspetti della privacy dell'applicazione.

Nota

Questa opzione disabilita anche la ridistribuzione della stringa di query negli HttpClient eventi EventSource. Per altre informazioni, vedere Redaction delle query URI negli eventi HttpClient EventSource.

API interessate