IHttpClientFactory 記錄中的 URI 查詢和片段編輯
在 .NET 9 中,記錄 URI 資訊時,的預設實 IHttpClientFactory 作已修改為清除查詢字串。 這項變更可藉由防止記錄查詢字串中包含的潛在敏感性資訊,同時將修訂的效能成本保持在最低,藉此增強隱私權。 對於記錄查詢字串是必要的且視為安全的案例,您可以覆寫此行為。
導入的版本
.NET 9 預覽 7
先前的行為
先前,記錄的預設實作 IHttpClientFactory
包含在傳遞至 ILogger的訊息中包含查詢字串,這可能會不小心公開敏感性資訊。
新的行為
傳遞至 ILogger 的訊息現在會以 *
字元取代查詢和片段部分。
中斷性變更的類型
此變更為行為變更。
變更原因
這項變更的主要原因,是藉由降低不小心記錄敏感性資訊的風險來增強隱私權。 查詢字串通常包含敏感數據,並預設從記錄中排除它們有助於保護此資訊。 為了保持實作簡單且有效率,片段部分也會進行清除。
建議的動作
如果您的應用程式依賴記錄查詢字串,而且您確信可以安全地執行此動作,您可以透過下列三種方式之一設定 AppContext 參數,以全域方式啟用查詢字串記錄:
在專案檔中。
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>
在 runtimeconfig.json 檔案中。
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }
透過環境變數。
將
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION
設定為true
或 1。
否則,不需要採取任何動作,且預設行為將有助於增強應用程式的隱私權層面。
注意
此參數也會停用 EventSource 事件中的 HttpClient
查詢字串修訂。 如需詳細資訊,請參閱 HttpClient EventSource 事件中的 URI 查詢修訂。