Elemento <schemeSettings> (configuración de URI)
Especifica cómo se analizará un Uri para esquemas concretos.
<configuración>
<URI>
<schemeSettings>
Sintaxis
<schemeSettings>
</schemeSettings>
Atributos y elementos
En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.
Atributos
None
Elementos secundarios
Element | Descripción |
---|---|
add | Agrega una configuración de esquema para un nombre de esquema. |
clear | Borra toda la configuración de esquema existente. |
remove | Agrega una configuración de esquema para un nombre de esquema. |
Elementos primarios
Element | Descripción |
---|---|
uri | Contiene el valor que especifica la manera en que .NET Framework controla las direcciones web expresadas mediante identificadores uniformes de recursos (URI). |
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>
Información de elemento
Espacio de nombres: System