Delen via


URI-query's en fragmentverwijdering in HttpClient EventSource-gebeurtenissen

In .NET 9 is het standaardgedrag van EventSource gebeurtenissen die worden verzonden door HttpClient en SocketsHttpHandler (EventSource naam: System.Net.Http) gewijzigd om de query en het fragmentgedeelte van de URI te verwijderen. Deze wijziging verbetert de privacy door het vastleggen van mogelijk gevoelige informatie in queryreeksen te voorkomen, terwijl de prestatiekosten van de redaction minimaal blijven. Indien nodig kunt u dit gedrag overschrijven.

Versie geïntroduceerd

.NET 9 Preview 7

Vorig gedrag

Eerder werden gebeurtenissen verzonden door HttpClient en SocketsHttpHandler opgenomen querytekenreeksinformatie, waardoor gevoelige informatie per ongeluk beschikbaar kon worden gemaakt.

Nieuw gedrag

Door de wijziging in dotnet/runtime#104741worden de query- en fragmentonderdelen standaard vervangen door een * teken in HttpClient en SocketsHttpHandler gebeurtenissen. Deze wijziging is van invloed op specifieke gebeurtenissen en parameters, zoals pathAndQuery in RequestStart en redirectUri in Redirect.

Type wijziging die fouten veroorzaken

Deze wijziging is een gedragswijziging.

Reden voor wijziging

De belangrijkste reden voor deze wijziging was het verbeteren van de privacy door het risico te verminderen dat gevoelige informatie per ongeluk wordt geregistreerd. Queryreeksen bevatten vaak gevoelige gegevens en het redacteren van logboeken helpt deze informatie standaard te beveiligen. Om de implementatie eenvoudig en efficiënt te houden, wordt het fragmentgedeelte ook geschrobd.

Als u queryreeksgegevens nodig hebt bij het verbruik HttpClient of SocketsHttpHandler gebeurtenissen en u er zeker van bent dat dit veilig is, kunt u logboekregistratie van queryreeksen globaal inschakelen door een AppContext-switch op drie manieren in te stellen:

  • In het projectbestand.

    <ItemGroup>
      <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" />
    </ItemGroup>
    
  • In het bestand runtimeconfig.json .

    {
        "runtimeOptions": {
            "configProperties": {
                "System.Net.Http.DisableUriRedaction": true
            }
        }
    }
    
  • Via een omgevingsvariabele.

    Ingesteld DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTION op true of 1.

Anders is er geen actie vereist en het standaardgedrag helpt de privacyaspecten van uw toepassing te verbeteren.

Notitie

Met deze schakeloptie wordt ook bewerking van queryreeksen uitgeschakeld in de standaardlogboeken IHttpClientFactory . Zie URI-query's redaction in IHttpClientFactory-logboeken voor meer informatie.

Betrokken API's