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.
Zalecana akcja
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.