URI-query en fragmentheractie in IHttpClientFactory-logboeken

In .NET 9 is de standaardimplementatie van IHttpClientFactory aangepast om querytekenreeksen te verwijderen bij het loggen van URI-informatie. Deze wijziging verbetert de privacy door het vastleggen van mogelijk gevoelige informatie in queryreeksen te voorkomen, terwijl de prestatiekosten van de redaction minimaal blijven. Voor situaties waarin het loggen van querystrings noodzakelijk is en dit veilig wordt geacht, kunt u dit gedrag negeren.

Versie toegevoegd

.NET 9 preview 7

Vorig gedrag

Voorheen bevatte de standaardimplementatie van IHttpClientFactory-logging querystrings in de berichten die aan ILogger werden doorgegeven, waardoor gevoelige informatie onbedoeld kon worden blootgegeven.

Nieuw gedrag

De berichten die nu aan ILogger worden doorgegeven, hebben het querygedeelte vervangen door het teken *, en de gebruikersgegevens en het fragmentgedeelte zijn verwijderd.

Type brekende wijziging

Deze wijziging is een gedragswijziging.

Reden voor wijziging

De belangrijkste reden voor deze wijziging is om de privacy te verbeteren door het risico te verminderen dat gevoelige informatie per ongeluk wordt geregistreerd. Queryreeksen bevatten vaak gevoelige gegevens en uitsluiten van logboeken helpen deze informatie standaard te beveiligen. Om de implementatie eenvoudig en efficiƫnt te houden, worden de gebruikersinformatie en fragmentonderdelen ook geschrobd.

Als uw toepassing afhankelijk is van het loggen van querytekenreeksen en u er zeker van bent dat dit veilig is, kunt u het maskeren van URI's globaal uitschakelen door op een van de volgende drie manieren een AppContext-switch in te stellen. De schakeloptie slaat alle redactions over, zodat URI's worden vastgelegd as-is, inclusief de query, gebruikersgegevens en fragmentonderdelen.

  • 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 optie wordt ook het redigeren van URI's in HttpClient EventSource-gebeurtenissen overgeslagen. Zie URI-redaction in HttpClient EventSource-gebeurtenissen voor meer informatie.

Getroffen API's