2012-05-04 8 views
5

Hace unos años, recuerdo que tuve problemas con un sitio múltiple en una situación de dominio, donde uno de los sitios se colocó en la raíz.¿Por qué NO debo implementar mi sitio web asp.net o webapp en la raíz de un dominio en IIS?

En el momento que leí un puesto de autoridad que explica claramente por qué me esto era una mala idea, lo que recuerdo es el tema en cascada web.config siendo la razón principal (lo que obligó a undeclare referencias contradictorias en proyectos niño que son esencialmente ajenos a ese proyecto). De ahora en adelante, siempre he implementado cualquier sitio web en su propia ruta virtual, usando una única redirección en la raíz para apuntar al sitio web predeterminado.

Parece que ya no puedo encontrar esa referencia autorizada y las consideraciones de implementación pueden haber cambiado desde entonces.

¿Cuáles son las ventajas y más probables, las desventajas de este escenario? Pregunto porque una empresa con la que trabajo no ve con buenos ojos la separación de los despliegues de esta manera y no creo que sea una buena idea.

Respuesta

2

Respuesta corta: aislamiento. IMO los beneficios de alojar diferentes sitios web/aplicaciones web sin aislarlos son inútiles.

Respuesta larga:

Pros:

  • El uso de un solo puerto, sin fijaciones específicas (es decir, los alias.): Si no tiene acceso a enlaces de sitios Web, en su muy útil
  • Creación rápida y creación dinámica de sitios web: puede crear un nuevo subsitio sin declararlo en el lado IIS
  • Configuración de uso compartido: ap Configuración de la base de capas sitio web a todos los subsitios (documentos, tipos MIME etc ...)

Contras:

  • grupo de aplicaciones de aislamiento: sin aislamiento de identidad, sin proceso de trabajo aislamiento, sin aislamiento de fallas/recuperación, etc. ... (tiempo de espera, límite de memoria, etc.)

  • AppDomain o de por vida aislamiento: tendrá que encargarse de su sitio web AppDomains.Si comparte el mismo dominio de aplicación, compartirá el mismo ciclo de vida: si el dominio de aplicación está descargado, todos los sitios web en este dominio de aplicación bajarán y se volverán a cargar (es decir, si toca un dominio de aplicación web.config)

  • Aislamiento arquitectónico: algunos desarrolladores de aplicaciones web necesitan algunos tunning en el lado IIS, si sintoniza su grupo IIS o sitio web solo para una aplicación, es un impacto para todos los sitios. Pienso en la configuración de 32 bits y 64 bits o la asignación de comodines, por ejemplo.

  • Código y aislamiento de seguridad: las aplicaciones que se ejecutan en el mismo proceso de trabajo y/o AppDomain están menos protegidas contra el acceso/hacks/ataques entre aplicaciones. Tendrás que estar más atento para garantizar que la información de una aplicación no pueda ser leída por otra.

  • Auditoría: podría ser más difícil auditar la actividad y el fracaso de los sitios web.

El aislamiento de aplicaciones web siempre ha sido un objetivo en entornos mutualizados para proteger las aplicaciones entre sí.

Desde IIS 7, el aislamiento del grupo de aplicaciones ir más allá con la "identidad del grupo de aplicaciones": http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx

He encontrado este artículo también: http://searchsecurity.techtarget.com/tip/Web-application-isolation.

También debe consultar la arquitectura de colecciones de sitios de SharePoint. Aquí está la idea: http://blogs.msdn.com/b/sgoodyear/archive/2011/11/18/9848865.aspx.

+0

Gracias por la exhaustiva redacción. En el enlace de S. Goodyear concluye diciendo: "Recuerde, la estructura virtual y la taxonomía del sitio (directorio) pueden ser cualquier cosa, porque son solo hipervínculos que apuntan al contenido. Evite tomar decisiones de estructura física cuando los enlaces lo hagan". que creo que es un excelente punto en el caso. – Abel

1

La contraindicación principal para alojar varios "sitios" en un dominio (y como tal, un "sitio web" en IIS) puedo pensar en el aislamiento de identidad del usuario; un visitante conectado a/site1 también estaría conectado a/site2 cuando configure, p. Autenticación de Windows y esto es algo que quizás no desee.

Lo mismo se aplica potencialmente para las cookies establecidas en el nivel de dominio. En IIS, un sitio web es un límite de seguridad (para el cliente también) y tener múltiples "sitios" en el mismo dominio PODRÍA abrirlo a las vulnerabilidades de seguridad ...

En cuanto a colocar un "sitio" en la raíz y otros en subcarpetas; sus juegos de aplicaciones configurados para el "sitio raíz" se conectarían en cascada a los "sitios de la subcarpeta"; nuevamente, esto podría no ser un problema, pero ES un posible error de seguridad.

+0

Gracias por señalar los problemas de seguridad. No pensé en las (o las obvias) rutas o cookies de dominio. ¿La autenticación está aislada por ruta y en cascada a los directorios secundarios, o solo está aislada por dominio? Usamos un controlador de autenticación personalizado, por lo que en el escenario actual puede no importar. – Abel

+1

La autenticación (ventanas básicas +) normalmente se encuentra en todo el sitio, pero la autorización se puede configurar en cascada. La autenticación de formularios está basada en cookies, lo que sugiere que se puede hacer para que diferentes subcarpetas permitan diferentes usuarios conectados al mismo tiempo. ¿Dónde almacena su controlador personalizado la identidad del visitante? Si se trata de cookies, debe asegurarse de que las cookies sean válidas solo para un único subsitio ... –

Cuestiones relacionadas