.NET 9 では、URI 情報をログに記録するときにクエリ文字列をスクラブするように、 IHttpClientFactory の既定の実装が変更されました。 この変更により、クエリ文字列に含まれる可能性のある機密情報のログ記録を防ぎ、編集のパフォーマンス コストを最小限に抑えることで、プライバシーが強化されます。 クエリ文字列のログ記録が必要であり、安全であると見なされるシナリオでは、この動作をオーバーライドできます。
導入されたバージョン
.NET 9 Preview 7
以前の動作
以前は、 IHttpClientFactory ログの既定の実装では、 ILoggerに渡されたメッセージにクエリ文字列が含まれていました。これは、機密情報が誤って公開される可能性があります。
新しい動作
ILoggerに渡されたメッセージには、クエリ パーツが*文字に置き換えられ、ユーザー情報とフラグメント 部分が削除されました。
破壊的変更の種類
この変更は、動作変更です。
変更理由
この変更の主な理由は、機密情報が誤ってログに記録されるリスクを減らすことでプライバシーを強化することです。 多くの場合、クエリ文字列には機密データが含まれており、既定ではログから除外することで、この情報を保護できます。 実装をシンプルかつ効率的に保つために、ユーザー情報とフラグメント部分もスクラブされます。
推奨される操作
アプリケーションがクエリ文字列のログ記録に依存していて、安全であると確信できる場合は、3 つの方法のいずれかで AppContext スイッチを設定することで、URI の再アクションをグローバルに無効にすることができます。 スイッチは編集をスキップするため、クエリ、ユーザー情報、フラグメント部分など、URI が as-isログに記録されます。
プロジェクト ファイルで。
<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 に設定します。
それ以外の場合は、アクションは必要ありません。既定の動作は、アプリケーションのプライバシーの側面を強化するのに役立ちます。
注
このスイッチは、HttpClientEventSource イベントでの URI のマスキングもスキップします。 詳細については、 HttpClient EventSource イベントの URI の編集に関するページを参照してください。
影響を受ける API
.NET