Partage via


Élément <clear> pour schemeSettings (paramètres d’URI)

Efface tous les paramètres de schéma existants.

<configuration>
  <uri>
    <schemeSettings>
      <clear>

Syntaxe

<clear/>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Aucune.

Éléments enfants

Aucune.

Éléments parents

Élément Description
<schemeSettings> Élément (Paramètres d’uri) Spécifie la façon dont un Uri est analysé pour les schémas spécifiques.

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 utilisée par la classe Uri qui efface tous les paramètres de schéma, puis ajoute la prise en charge du non-échappement des délimiteurs de chemin encodés en pourcentage pour le schéma HTTP.

<configuration>  
  <uri>  
    <schemeSettings>  
      <clear/>  
      <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes"/>  
    </schemeSettings>  
  </uri>  
</configuration>  

Voir aussi