Partage via


<add>, élément pour schemeSettings (paramètres d’URI)

Ajoute un paramètre de schéma pour un nom de schéma.

<configuration>
  <uri>
    <schemeSettings>
      <add>

Syntaxe

<add
  name="http|https"
  genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>  

Attributs et éléments

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

Attributs

Attribut Description
name Nom du schéma pour lequel ce paramètre s’applique. Les seules valeurs prises en charge sont name="http » et name="https".

Attribut {nom de l’attribut}

Valeur Description
genericUriParserOptions Options d’analyseur pour ce schéma. La seule valeur prise en charge est genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Éléments enfants

None

É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 que la classe Uri utilise pour prendre en charge le non-échappement des délimiteurs de chemin d’accès encodés en pourcentage pour le schéma http.

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

Voir aussi