다음을 통해 공유


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_DISABLEURIREDACTIONtrue 또는 1로 설정합니다.

그렇지 않으면 아무 작업도 필요하지 않으며 기본 동작은 애플리케이션의 개인 정보 보호 측면을 개선하는 데 도움이 됩니다.

참고 항목

또한 이 스위치는 EventSource 이벤트에서 쿼리 문자열 편집을 HttpClient 사용하지 않도록 설정합니다. 자세한 내용은 HttpClient EventSource 이벤트의 URI 쿼리 편집을 참조 하세요.

영향을 받는 API