Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In .NET 9, il comportamento predefinito degli EventSource eventi generati da HttpClient e SocketsHttpHandler (EventSource nome: System.Net.Http) è stato modificato per pulire la query, le informazioni utente e parti frammento dell'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. Se necessario, è possibile eseguire l'override di questo comportamento.
Versione introdotta
.NET 9 Preview 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, la parte della query viene sostituita con un carattere *, mentre le informazioni sull'utente e la parte del frammento vengono rimosse per impostazione predefinita negli eventi HttpClient e SocketsHttpHandler. Questa modifica influisce su eventi e parametri specifici, ad esempio pathAndQuery 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. Le stringhe di query contengono spesso dati sensibili e, per impostazione predefinita, oscurarle nei log aiuta a proteggere queste informazioni. Per mantenere l'implementazione semplice ed efficiente, vengono anche lavate le informazioni utente e le parti di frammento.
Azione consigliata
Se hai bisogno di informazioni sulla stringa di query quando utilizzi gli eventi HttpClient o SocketsHttpHandler e sei certo che sia sicuro farlo, puoi disabilitare globalmente il mascheramento dell'URI impostando uno switch AppContext in uno dei tre modi. L'opzione salta qualsiasi oscuramento, quindi gli URI vengono riportati così come sono, comprese le parti di query, informazioni utente e frammento.
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_DISABLEURIREDACTIONsutrueo 1.
In caso contrario, non è necessaria alcuna azione e il comportamento predefinito contribuirà a migliorare gli aspetti della privacy dell'applicazione.
Nota
Questa opzione disattiva anche l'oscuramento dell'URI nei log predefiniti IHttpClientFactory. Per ulteriori informazioni, vedere Oscuramento delle query URI nei log di IHttpClientFactory.