Redaction kwerendy identyfikatora URI w zdarzeniach httpClient EventSource
W programie .NET 9 domyślne zachowanie zdarzeń EventSource emitowanych przez HttpClient i SocketsHttpHandler (EventSource
nazwa: System.Net.Http
) zostało zmodyfikowane w celu czyszczenia ciągów zapytania. Ta zmiana zwiększa prywatność, uniemożliwiając rejestrowanie potencjalnie poufnych informacji zawartych w ciągach zapytania. W razie potrzeby można zastąpić to zachowanie.
Wprowadzona wersja
.NET 9 (wersja zapoznawcza 7)
Poprzednie zachowanie
Wcześniej zdarzenia emitowane przez HttpClient
i SocketsHttpHandler
dołączone informacje o ciągu zapytania, które mogłyby przypadkowo uwidocznić poufne informacje.
Nowe zachowanie
Po zmianie w pliku dotnet/runtime#104741 ciągi zapytania są domyślnie zastępowane znakiem *
i HttpClient
SocketsHttpHandler
zdarzeniami. Ta zmiana ma wpływ na określone zdarzenia i parametry, takie jak pathAndQuery
w i RequestStart
redirectUri
w Redirect
.
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Główną przyczyną tej zmiany było zwiększenie prywatności poprzez zmniejszenie ryzyka niezamierzonego rejestrowania poufnych informacji. Ciągi zapytań często zawierają poufne dane i domyślnie pomagają chronić te informacje.
Zalecana akcja
Jeśli potrzebujesz informacji o ciągu zapytania podczas używania HttpClient
lub SocketsHttpHandler
zdarzeń i masz pewność, że jest to bezpieczne, możesz włączyć rejestrowanie ciągów zapytania 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ż funkcję redaction ciągu zapytania w dziennikach domyślnych IHttpClientFactory
. Aby uzyskać więcej informacji, zobacz Redaction zapytania URI w dziennikach IHttpClientFactory.