Rollforward di query URI negli eventi HttpClient EventSource
In .NET 9 il comportamento predefinito degli EventSource eventi generati da HttpClient e SocketsHttpHandler (EventSource
nome: System.Net.Http
) è stato modificato per eseguire lo scrub delle stringhe di query. Questa modifica migliora la privacy impedendo la registrazione di informazioni potenzialmente riservate contenute nelle stringhe di query. Se necessario, è possibile eseguire l'override di questo comportamento.
Versione introdotta
.NET 9 Anteprima 7
Comportamento precedente
In precedenza, gli eventi generati da HttpClient
e SocketsHttpHandler
includevano informazioni sulla stringa di query, che potrebbero esporre inavvertitamente informazioni riservate.
Nuovo comportamento
Con la modifica in dotnet/runtime#104741, le stringhe di query vengono sostituite da un *
carattere in HttpClient
e SocketsHttpHandler
gli eventi, per impostazione predefinita. Questa modifica influisce su eventi e parametri specifici, ad pathAndQuery
esempio in RequestStart
e redirectUri
in Redirect
.
Tipo di modifica che causa un'interruzione
Questa è una modifica funzionale.
Motivo della modifica
Il motivo principale di questa modifica era migliorare la privacy riducendo il rischio di registrazione accidentale delle informazioni riservate. Per impostazione predefinita, le stringhe di query contengono dati sensibili e le redacting dai log consentono di proteggere queste informazioni.
Azione consigliata
Se sono necessarie informazioni sulla stringa di query quando si usano HttpClient
o SocketsHttpHandler
eventi 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 delle stringhe di query nei log predefiniti IHttpClientFactory
. Per altre informazioni, vedere Rollforward di query URI nei log IHttpClientFactory.