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.
Azione consigliata
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
sutrue
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.