Compartir a través de


<clear> (Elemento para schemeSettings, Configuración de URI)

Desactiva todos los valores de esquema existentes.

<clear/>

Atributos y elementos

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

Atributos

Ninguno.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento

Descripción

<schemeSettings> (Elemento, Configuración de URI)

Especifica cómo se analizará Uri para esquemas concretos.

Comentarios

De forma predeterminada, la clase System.Uri quita los caracteres de escape de los delimitadores de ruta de acceso codificados con porcentaje antes de ejecutar la compresión de la ruta de acceso. Esto se implementó como un mecanismo de seguridad frente a ataques como el siguiente:

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

Si este URI se pasa a los módulos sin controlar correctamente los caracteres codificados con porcentaje, podría ocurrir que el servidor ejecute el comando siguiente:

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

Por esta razón, la clase System.Uri primero quita los caracteres de escape de los delimitadores de ruta de acceso y, a continuación, aplica la compresión de la ruta de acceso. El resultado de pasar la dirección URL malintencionada anterior al constructor de clase System.Uri produce el URI siguiente:

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

Este comportamiento predeterminado se puede modificar para no quitar los caracteres de escape de los delimitadores de ruta de acceso codificados con porcentaje utilizando la opción de configuración schemeSettings para un esquema concreto.

Archivos de configuración

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

Ejemplo

El ejemplo de código siguiente muestra una configuración utilizada por la clase Uri que borra todos los valores de esquema y, a continuación, agrega compatibilidad para delimitadores de ruta de acceso con codificación de porcentaje para el esquema http.

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

Vea también

Referencia

Esquema de la configuración de red

System.Configuration.SchemeSettingElement

System.Configuration.SchemeSettingElementCollection

System.Configuration.UriSection

UriSection.SchemeSettings

System.GenericUriParserOptions

System.Uri