<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 |
---|---|
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