Élément <schemeSettings> (paramètres d’URI)
Spécifie la façon dont un Uri est analysé pour les schémas spécifiques.
<configuration>
<URI>
<schemeSettings>
Syntaxe
<schemeSettings>
</schemeSettings>
Attributs et éléments
Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.
Attributs
Aucun
Éléments enfants
Element | Description |
---|---|
add | Ajoute un paramètre de schéma pour un nom de schéma. |
clear | Efface tous les paramètres de schéma existants. |
remove | Supprime un paramètre de schéma pour un nom de schéma. |
Éléments parents
Element | Description |
---|---|
uri | Contient les paramètres qui spécifient la façon dont .NET Framework gère les adresses web exprimées à l’aide d’URI (Uniform Resource Identifier). |
Notes
Par défaut, la classe System.Uri annule l’échappement des délimiteurs de chemin encodés en pourcentage avant d’exécuter la compression de chemin. Elle a été implémentée en guise de mécanisme de sécurité destiné à lutter contre les attaques comme suit :
http://www.contoso.com/..%2F..%2F/Windows/System32/cmd.exe?/c+dir+c:\
Si cet URI est transmis à des modules qui ne gèrent pas correctement les caractères encodés en pourcentage, la commande suivante risque d’être exécutée par le serveur :
c:\Windows\System32\cmd.exe /c dir c:\
Pour cette raison, la classe System.Uri commence par annuler l’échappement des délimiteurs de chemin, puis applique la compression de chemin. Le résultat de la transmission de l’URL malveillante ci-dessus au constructeur de classe System.Uri donne l’URI suivant :
http://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\
Ce comportement par défaut peut être modifié de façon à ne pas annuler l’échappement des délimiteurs de chemin encodés en pourcentage en utilisant l’option de configuration schemeSettings pour un schéma spécifique.
Fichiers de configuration
Cet élément peut être défini dans le fichier de configuration de l'application ou dans le fichier de configuration de l'ordinateur (Machine.config).
Exemple
L’exemple suivant montre une configuration que la classe Uri utilise pour prendre en charge le non-échappement des délimiteurs de chemin encodés en pourcentage pour le schéma http.
<configuration>
<uri>
<schemeSettings>
<add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>
</schemeSettings>
</uri>
</configuration>
Informations sur les éléments
Espace de noms : System