Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans .NET 9, le comportement par défaut des EventSource événements émis par HttpClient et SocketsHttpHandler (EventSource nom : System.Net.Http) a été modifié pour nettoyer la requête, les informations utilisateur et les parties fragmentes de l’URI. Cette modification améliore la confidentialité en empêchant la journalisation des informations potentiellement sensibles contenues dans les chaînes de requête tout en réduisant au minimum les coûts de performance liés à la rédaction. Si nécessaire, vous pouvez remplacer ce comportement.
Version introduite
.NET 9 Préversion 7
Comportement précédent
Auparavant, les événements émis par HttpClient et SocketsHttpHandler incluaient des informations sur la chaîne de requête, ce qui pouvait exposer par inadvertance des informations sensibles.
Nouveau comportement
Avec la modification de dotnet/runtime#104741, la partie requête est remplacée par un caractère *, et les informations utilisateur ainsi que la partie fragment sont supprimées par défaut dans les événements HttpClient et SocketsHttpHandler. Cette modification affecte des événements et des paramètres spécifiques, tels que pathAndQuery dans RequestStart et redirectUri dans Redirect.
Type de rupture de compatibilité
Ce changement est un changement de comportement.
Raison du changement
La principale raison de ce changement était d’améliorer la confidentialité en réduisant le risque de journalisation par inadvertance des informations sensibles. Les chaînes de requête contiennent souvent des données sensibles, et le fait de les masquer par défaut dans les journaux aide à protéger ces informations. Pour que l’implémentation soit simple et efficace, les informations utilisateur et les parties fragmentées sont également nettoyées.
Action recommandée
Si vous avez besoin d’informations sur les paramètres de chaîne de requête lors du traitement des événements HttpClient ou SocketsHttpHandler et que vous êtes certain que cela peut être fait en toute sécurité, vous pouvez désactiver globalement le masquage de l’URI en définissant un commutateur AppContext de l’une des trois façons suivantes. L’option ignore tout caviardage, de sorte que les URI sont rapportées telles quelles, y compris la requête, les informations utilisateur et le fragment.
Dans le fichier projet.
<ItemGroup> <RuntimeHostConfigurationOption Include="System.Net.Http.DisableUriRedaction" Value="true" /> </ItemGroup>Dans le fichier runtimeconfig.json.
{ "runtimeOptions": { "configProperties": { "System.Net.Http.DisableUriRedaction": true } } }Via une variable d’environnement.
Définissez
DOTNET_SYSTEM_NET_HTTP_DISABLEURIREDACTIONsurtrueou 1.
Sinon, aucune action n’est requise et le comportement par défaut permet d’améliorer les aspects de confidentialité de votre application.
Remarque
Ce commutateur ignore également le masquage des URI dans les logs IHttpClientFactory par défaut. Pour plus d’informations, consultez la rédaction des requêtes d’URI dans les journaux IHttpClientFactory.