Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
Los archivos de definición de explorador (archivos .browser) contienen información relativa a las funciones de las clases de exploradores (como Internet Explorer) y de exploradores concretos (como Internet Explorer 6.0). En tiempo de ejecución, ASP.NET utiliza la información de los archivos .browser para determinar qué explorador ha realizado la solicitud, qué funciones tiene y cómo se representa el marcado en ese explorador. Para obtener más información, vea Esquema de archivos de definición de explorador (Elemento browsers).
Para obtener información detallada sobre los procedimientos recomendados para escribir código seguro y proteger las aplicaciones, vea el libro "Writing Secure Code" de Michael Howard y David LeBlanc y las instrucciones proporcionadas en Microsoft Patterns and Practices.
Nota: |
|---|
Los archivos de definición de explorador son nuevos en la versión 2.0 de .NET Framework. En versiones anteriores de .NET Framework, se utilizaba el elemento browserCaps para definir las definiciones de explorador en los archivos de configuración. |
Seguridad del archivo de definición de explorador
Todas las características de un explorador, incluidas las clases de .NET Framework y los archivos de definición de explorador, requieren confianza parcial en el nivel de la aplicación y plena confianza en el nivel global. El ensamblado de definición de explorador global se firma con una clave de equipo única antes de su inserción en la caché del ensamblado global y no se puede manipular. Los archivos de definición de explorador incluidos en el directorio %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers están protegidos mediante listas de control de acceso (ACL) y se requieren privilegios administrativos para modificarlos.
Directorios de archivos de definición de explorador
El directorio global Browser y el subdirectorio App_Browsers de la aplicación deben contener únicamente archivos con la extensión de nombre de archivo .browser. La característica de funciones de explorador de ASP.NET sólo compila archivos .browser. Además, ASP.NET impide que el servidor Web suministre los archivos de estos directorios y que el código de otras aplicaciones tenga acceso a ellos.
Listas de control de acceso (ACL) de los archivos de definición de explorador
La tabla siguiente muestra las listas de control de acceso definidas de forma predeterminada en los archivos .browser incluidos en el directorio %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Estas ACL también se establecen en el propio directorio, pero incluyen permisos de modificación para el grupo CREATOR OWNER. El directorio es de sólo lectura.
Cuenta de Windows |
Permisos |
|---|---|
Administradores |
Control completo |
Cuenta de equipo de ASP.NET (<server>\ASPNET) |
Lectura y ejecución |
CREATOR OWNER |
Control completo |
IIS_WPG (<server>\IIS_WPG) |
Lectura y ejecución |
LOCAL SERVICE |
Lectura y ejecución |
NETWORK SERVICE |
Lectura y ejecución |
Usuarios avanzados (<server>\Power Users) |
Modificación |
SYSTEM |
Control completo |
Usuarios (<server>\Users) |
Lectura y ejecución |
La tabla siguiente muestra las ACL que se deben establecer en los archivos .browser de la aplicación incluidos en el subdirectorio App_Browsers.
Cuenta de Windows |
Permisos |
|---|---|
Administradores |
Control completo |
IIS_WPG (<server>\IIS_WPG) |
Lectura y ejecución |
INTERACTIVE |
Lectura |
Cuenta de invitado de Internet (<server>\IUSR_<server>) |
Lectura |
NETWORK |
Lectura |
NETWORK SERVICE |
Lectura |
SYSTEM |
Control completo |
Usuarios (<server>\Users) |
Lectura y ejecución |
Cuenta de Herramienta Administración de sitios Web en ASP.NET |
Especial |
Agregar archivos de definición de explorador
No descargue ni instale archivos de definición de explorador a menos que confíe en su origen. Por ejemplo, examine un nuevo archivo de definición de explorador para ver si se hace referencia a algún espacio de nombres desconocido en cualquiera de los atributos siguientes:
Atributo markupTextWriterType del elemento controlAdapters.
Atributo value del elemento capability.
Atributos controlType y adapterType del elemento adapter.
Para obtener información sobre los elementos y atributos válidos, vea Esquema de archivos de definición de explorador (Elemento browsers).
Modificar archivos de definición de explorador
Si se agregan nuevos archivos de definición de explorador al directorio global o se realizan cambios en los archivos de definición de explorador globales, esos cambios no tienen efecto hasta que se vuelve a compilar manualmente la colección de funciones del explorador con la herramienta Aspnet_regbrowsers.exe, disponible en la carpeta %SystemRoot%\Microsoft.NET\Framework\version, o se genera una recompilación mediante programación utilizando la clase BrowserCapabilitiesCodeGenerator.
Sin embargo, no es necesario volver a compilar los cambios en las definiciones de explorador de la aplicación. Los cambios realizados en esas definiciones se vuelven a compilar y a aplicar dinámicamente.
Proteger archivos de definición de explorador en un entorno de alojamiento compartido
En un entorno de alojamiento compartido, los usuarios malintencionados pueden modificar la configuración de los archivos de definición de explorador por medio de la modificación directa de estos archivos, de una modificación de las API de configuración y de otras herramientas de administración y configuración. Para mitigar esta amenaza, mantenga ACL seguras en los archivos de definición de explorador. El contenido de los directorios de archivos de definición de explorador se compila y por ello se debe proteger de la misma forma que cualquier otro directorio de código de la aplicación. Si el administrador del host impide que un usuario agregue código a una aplicación, también debe impedir que el usuario agregue archivos de definición de explorador.
Imponer un bloqueo de archivo en un archivo de definición de explorador
Sólo tras repetidos intentos de guardar en un archivo de definición de explorador o de abrir un identificador de archivo se puede bloquear un archivo de definición de explorador. Un usuario malintencionado puede tratar de bloquear los archivos de definición de explorador del directorio %SystemRoot%\Microsoft.NET\Framework\version\CONFIG\Browsers. Sin embargo, para bloquear un archivo de definición de explorador se requiere plena confianza, que está deshabilitada de forma predeterminada en ASP.NET.
Utilizar la API de configuración para leer archivos arbitrarios
Las clases de la API de configuración de la definición del explorador no pueden leer directorios que no formen parte del dominio de la aplicación, ni archivos que no tengan una extensión de nombre de archivo .browser.
Almacenar en memoria caché las funciones del explorador
En tiempo de ejecución, la información del archivo de definición de explorador se combina en una colección de exploradores conocidos en un objeto BrowserCapabilitiesFactory. Cuando se realiza una solicitud, ASP.NET identifica el explorador que ha efectuado la solicitud por el encabezado de ésta y compila un objeto HttpCapabilitiesBase que corresponde al explorador que ha emitido la solicitud. El objeto se almacena en memoria caché y se puede volver a utilizar en una solicitud diferente realizada por el mismo explorador.
Un cliente malintencionado puede intentar desbordar el servidor Web con una serie de solicitudes en la que cada nueva solicitud usa un encabezado diferente, lo que hace que ASP.NET genere y almacene en caché objetos de funciones de explorador para cada solicitud. Esto puede dar como resultado un ataque de denegación de servicio. Para mitigar esta amenaza, configure el atributo userAgentCacheKeyLength del elemento Elemento browserCaps (Esquema de configuración de ASP.NET) en el archivo Machine.config o en un archivo Web.config. Este elemento define la longitud de caracteres que se debe utilizar como clave para identificar los objetos de funciones almacenados en la memoria caché interna. El ajuste predeterminado es 64. Puede reducir este valor para aumentar la probabilidad de encontrar un explorador coincidente en la caché y disminuir así la carga en la memoria caché.
Excepciones
Para contribuir a evitar que la información confidencial pueda estar expuesta en orígenes no deseados, configure la aplicación de manera que no muestre mensajes de error detallados o que muestre estos mensajes únicamente cuando el cliente sea el propio servidor Web. Para obtener más información, vea Elemento customErrors (Esquema de configuración de ASP.NET).
Registro de eventos
Si el servidor está ejecutando Windows Server 2003, puede mejorar la seguridad de la aplicación protegiendo el registro de eventos y estableciendo los parámetros relativos al tamaño, la retención y a otras características del registro de eventos con el fin de evitar un ataque de denegación de servicio indirecto. Para obtener más información sobre la configuración de los registros de eventos, busque "Visor de sucesos" o "Event Viewer" en Ayuda y soporte técnico de Windows.
Vea también
Tareas
Cómo: Detectar tipos de explorador en páginas Web ASP.NET
Conceptos
Controles de servidor Web ASP.NET y funciones del explorador
Proteger archivos de definición de explorador
Escenarios de configuración de ASP.NET
Información general sobre el filtrado de dispositivos de ASP.NET
Información general sobre la arquitectura del comportamiento adaptable de los controles
Información general sobre el desarrollo Web en ASP.NET Mobile
Proteger la configuración de ASP.NET
Referencia
Esquema de archivos de definición de explorador (Elemento browsers)
Nota: