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 쿼리 편집을 참조 하세요.
영향을 받는 API
.NET