Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I .NET 9 har standardbeteendet EventSource för händelser som genererats av HttpClient och SocketsHttpHandler (EventSource namn: System.Net.Http) ändrats för att rensa frågan, användarinformationen och fragmentdelarna i URI:n. Den här ändringen förbättrar sekretessen genom att förhindra loggning av potentiellt känslig information i frågesträngar samtidigt som prestandakostnaderna för redigeringen hålls minimala. Om det behövs kan du åsidosätta det här beteendet.
Version som introducerades
Förhandsversion 7 av .NET 9
Tidigare beteende
Tidigare har händelser som genererats av HttpClient och SocketsHttpHandler inkluderat frågesträngsinformation, vilket oavsiktligt kan exponera känslig information.
Nytt beteende
Med ändringen i dotnet/runtime#104741 ersätts frågedelen med ett * tecken, och användarinformationen och fragmentdelarna tas bort i HttpClient och SocketsHttpHandler händelser som standard. Den här ändringen påverkar specifika händelser och parametrar, till exempel pathAndQuery i RequestStart och redirectUri i Redirect.
Typ av kompatibilitetsbrytande ändring
Den här ändringen är en beteendeförändring.
Orsak till ändringen
Den främsta orsaken till den här ändringen var att förbättra sekretessen genom att minska risken för att känslig information loggas oavsiktligt. Frågesträngar innehåller ofta känsliga data och att redigera dem från loggar som standard hjälper till att skydda den här informationen. För att hålla implementeringen enkel och effektiv rensas även användarinformationen och fragmentdelarna.
Rekommenderad åtgärd
Om du behöver frågesträngsinformation när du använder HttpClient eller SocketsHttpHandler händelser och du är säker på att det är säkert att göra det, kan du inaktivera URI-redigering globalt genom att ange en AppContext-växel på något av tre sätt. Växeln hoppar över alla redigeringar, så URI:er rapporteras as-is, inklusive frågan, användarinformation och fragmentdelar.
I projektfilen.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>I filen runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }Via en miljövariabel.
Ange
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTIONtilltrueeller 1.
Annars krävs ingen åtgärd, och standardbeteendet hjälper till att förbättra sekretessaspekterna i ditt program.
Kommentar
Den här växeln hoppar också över URI-redigering i standardloggarna IHttpClientFactory . Mer information finns i URI-frågeredigering i IHttpClientFactory-loggar.