Udostępnij za pośrednictwem


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.

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.

Dotyczy interfejsów API