Partager via


<add>, élément de schemeSettings (paramètres d'URI)

Ajoute un paramètre de modèle pour un nom de modèle.

<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 de schéma pour lequel ce paramètre s'applique. Les seules valeurs prises en charge sont name="http" et name="https".

{Nom d'attribut} Attribut

Valeur

Description

genericUriParserOptions

Options d'analyseur associées à ce schéma. La seule valeur prise en charge est genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Éléments enfants

Aucun

Éléments parents

Élément

Description

<schemeSettings>

Spécifie comment un Uri sera analysé pour des schémas spécifiques.

Notes

Par défaut, la classe System.Uri n'échappe pas les délimiteurs de chemin d'accès encodés de pourcentage avant d'exécuter la compression de chemin d'accès. Cela a été implémenté comme mécanisme de sécurité contre des attaques telles que les suivantes :

https://www.contoso.com/.. %2F.. %2F/Windows/System32/cmd.exe?/c+dir+c:\

Si cet URI est passé à des modules qui ne gèrent pas correctement les caractères encodés de pourcentage, il pourrait provoquer l'exécution de la commande suivante par le serveur :

c:\Windows\System32\cmd.exe /c dir c:\

Pour cette raison, la classe System.Uri place en premier les délimiteurs de chemin d'accès hors d'une séquence d'échappement puis applique la compression des chemin d'accès. Le résultat du passage de l'URL malveillante ci-dessus au constructeur de classe System.Uri provoque l'URI suivant :

https://www.microsoft.com/Windows/System32/cmd.exe?/c+dir+c:\\

Ce comportement par défaut peut être modifié pour échapper des délimiteurs de chemin d'accès encodés en pourcentage à l'aide de l'option de configuration schemeSettings pour un modèle spécifique.

Fichiers de configuration

Cet élément peut être utilisé dans le fichier de configuration de l'application ou dans le fichier de configuration machine (Machine.config).

Exemple

L'exemple de code suivant présente une configuration utilisée par la classe Uri afin de ne pas placer dans une séquence d'échappement les 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

Référence

Schéma des paramètres réseau

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri