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.
Aanbevolen actie
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
optrue
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.