Udostępnij za pośrednictwem


Ponowne wykonywanie zapytań URI w dziennikach IHttpClientFactory

Na platformie .NET 9 domyślna implementacja IHttpClientFactory została zmodyfikowana w celu czyszczenia ciągów zapytań podczas rejestrowania informacji o identyfikatorze URI. Ta zmiana zwiększa prywatność, uniemożliwiając rejestrowanie potencjalnie poufnych informacji zawartych w ciągach zapytania. W przypadku scenariuszy, w których rejestrowanie ciągów zapytań jest niezbędne i uznane za bezpieczne, można zastąpić to zachowanie.

Wprowadzona wersja

.NET 9 (wersja zapoznawcza 7)

Poprzednie zachowanie

Wcześniej domyślna implementacja rejestrowania IHttpClientFactory zawierała ciągi zapytań w komunikatach przekazanych do ILogger, co mogło przypadkowo uwidocznić poufne informacje.

Nowe zachowanie

Komunikaty przekazane do ILogger teraz mają ciągi zapytania zastąpione znakiem * .

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Główną przyczyną tej zmiany jest zwiększenie prywatności poprzez zmniejszenie ryzyka niezamierzonego rejestrowania poufnych informacji. Ciągi zapytań często zawierają poufne dane i domyślnie wykluczają je z dzienników, co pomaga chronić te informacje.

Jeśli aplikacja opiera się na rejestrowaniu ciągów zapytań i masz pewność, że jest to bezpieczne, możesz włączyć rejestrowanie ciągów zapytań globalnie, ustawiając przełącznik AppContext na jeden z trzech sposobów:

  • W pliku projektu.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • W pliku runtimeconfig.json.

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • Za pomocą zmiennej środowiskowej.

    Ustaw DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION wartość true lub 1.

W przeciwnym razie nie jest wymagana żadna akcja, a domyślne zachowanie pomoże zwiększyć aspekty prywatności aplikacji.

Uwaga

Ten przełącznik wyłącza również redaction ciągu zapytania w HttpClient zdarzeniach EventSource. Aby uzyskać więcej informacji, zobacz Redaction zapytania URI w zdarzeniach HttpClient EventSource.

Dotyczy interfejsów API