<add> (Elemento para schemeSettings, Configuración de URI)
Agrega un valor de esquema para un nombre de esquema.
<add
name = "http|https" genericUriParserOptions="DontUnescapePathDotsAndSlashes"
/>
Atributos y elementos
En las próximas secciones se describen los atributos, los elementos secundarios y los elementos primarios
Atributos
Atributo |
Descripción |
---|---|
name |
El nombre de esquema para el que se aplica este valor. Los únicos valores compatibles son name="http" y name="https". |
Atributo {nombre del atributo}
Valor |
Descripción |
---|---|
genericUriParserOptions |
Las opciones de analizador de este esquema. El único valor compatible es genericUriParserOptions= "DontUnescapePathDotsAndSlashes". |
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 para permitir delimitadores de ruta de acceso con codificación de porcentaje para el esquema http.
<configuration>
<uri>
<schemeSettings>
<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