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, gebruikersgegevens en fragmentonderdelen 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.

Geïntroduceerde versie

.NET 9 preview 7

Vorig gedrag

Voorheen bevatten gebeurtenissen die door HttpClient en SocketsHttpHandler werden gegenereerd informatie uit de queryreeks, waardoor gevoelige informatie onbedoeld kon worden blootgesteld.

Nieuw gedrag

Met de wijziging in dotnet/runtime#104741 wordt het queryonderdeel vervangen door een * teken en worden de gebruikersgegevens en fragmentonderdelen standaard verwijderd in HttpClient en SocketsHttpHandler gebeurtenissen. Deze wijziging is van invloed op specifieke gebeurtenissen en parameters, zoals pathAndQuery in RequestStart en redirectUri in Redirect.

Type brekende wijziging

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, worden de gebruikersinformatie en fragmentonderdelen ook geschrobd.

Als u informatie uit de querytekenreeks nodig hebt bij het verwerken van gebeurtenissen van HttpClient of SocketsHttpHandler en u er zeker van bent dat dit veilig is, kunt u URI-redactie globaal uitschakelen door op een van de volgende drie manieren een AppContext-switch in te stellen. De schakelaar slaat elke redigering over, zodat URI's ongewijzigd worden gerapporteerd, inclusief de query-, gebruikersinformatie- en fragmentdelen.

  • 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

Deze schakelaar slaat ook de redactie van URI’s over in de standaardlogboeken IHttpClientFactory. Zie queryredactie van URI's in logboeken van IHttpClientFactory voor meer informatie.

Getroffen API's