Compartir a través de


Elemento <add> para schemeSettings (configuración de URI)

Agrega una configuración de esquema para un nombre de esquema.

<configuration>
  <URI>
    <schemeSettings>
      <add>

Sintaxis

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

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios

Atributos

Atributo Descripción
name Nombre de esquema para el que se aplica esta configuración. Los únicos valores admitidos son name="http" y name="https".

Atributo {Attribute name}

Valor Descripción
genericUriParserOptions Opciones del analizador para este esquema. El único valor compatible es genericUriParserOptions= "DontUnescapePathDotsAndSlashes".

Elementos secundarios

Ninguno

Elementos primarios

Elemento Descripción
Elemento <schemeSettings> (Configuración URI) Especifica cómo se analizará un Uri para esquemas concretos.

Comentarios

De forma predeterminada, la clase System.Uri no escapa a los delimitadores de ruta de acceso de codificados por el porcentaje antes de ejecutar la compresión de ruta de acceso. Esto se implementó como un mecanismo de seguridad contra ataques como el siguiente:

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

Si este URI se pasa correctamente a los módulos que no controlan los caracteres codificados por porcentaje correctamente, podría dar lugar a que el servidor ejecute el siguiente comando:

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

Por este motivo, la clase System.Uri no escapa primero a los delimitadores de ruta de escape y, después, aplica la compresión de ruta de acceso. El resultado de pasar la dirección URL malintencionada anterior al constructor de clase System.Uri da como resultado el siguiente URI:

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

Este comportamiento predeterminado se puede modificar mediante la opción de configuración schemeSettings para un esquema específico.

Archivos de configuración

Este elemento se puede usar en el archivo de configuración de la aplicación o en el archivo de configuración del equipo (Machine.config).

Ejemplo

En el ejemplo siguiente se muestra una configuración usada por la clase Uri para admitir que no se escapen los delimitadores de ruta de acceso codificados por porcentajes para el esquema http.

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

Consulte también