2009-05-04 9 views
5

Supongamos que está escribiendo una aplicación WinForms basada en red que se supone que se ejecuta en un entorno "paranoico" debido a las políticas restrictivas de la compañía en el sitio del cliente. ¿Qué tipo de restricciones tenía ese entorno hostil y qué hizo para diseñar a su alrededor?¿Cuál es el entorno corporativo más hostil para implementar una aplicación .NET WinForms?

Algunos ejemplos para empezar:

  • Problema: hay un cortafuegos muy restrictiva que sólo permite el puerto 80 saliente tráfico. Solución: use solo HTTP para hacer su red.
  • Problema: .NET Framework no está permitido. Solución: convierta su aplicación en una aplicación web.

¿Cuáles son algunas de esas restricciones que ha enfrentado en situaciones reales de los clientes, como por ejemplo en software bancario (que normalmente necesita vivir en un entorno particularmente estricto)?

+2

No es que esto realmente responda a su pregunta, pero me recuerda (primer problema en particular) de RFC 3093. En cierto punto, solo tiene que reconocer que estos hacks están destinados a evadir la gestión, no a mantener una seguridad real. –

+0

Es una lástima que esté cerrado, creo que habría sido una buena pregunta para la wiki de la comunidad. – overslacked

Respuesta

3

Bueno, la primera parte de la pregunta, no estoy seguro. Sin embargo, en cuanto a sus viñetas. Puede ejecutar su servidor en el puerto 80 y NO usar HTTP, sino su protocolo personalizado. Además, seguramente el firewall permite SSL (443), también puedes envolver tu protocolo en SSL. En lo que respecta al marco de .NET no permitido, puede utilizar PostBuild de Xenocode o similar tipo de aplicación de enlace estático para .NET. Además, en cuanto a las cosas HTTP, puede hacer que su aplicación se comunique a través de HTTP, pero use los servicios web y, por lo tanto, aún así proporcione un cliente rico.

Aquí hay un enlace a PostBuild:

https://secure.xenocode.com/Products/Postbuild-for-NET/

+1

Tener 443 abierto de tal manera que una aplicación interna podría acceder no está garantizada. Según mi experiencia, en la mayoría de los entornos "solo el puerto 80 está abierto", en realidad hay algún tipo de proxy de filtrado en funcionamiento: este proxy solo permitirá el tráfico HTTP, a menudo eliminará los encabezados que no le gustan y Reemplazará silenciosamente los datos de retorno HTTP si se siente que hubo una violación de sus reglas. – David

0

siendo forzados a desarrollar en los marcos viejos como .NET 1.1, 3 años después del lanzamiento de .NET 2.0. También la desconexión entre los equipos de escritorio y servidor. El equipo de escritorio pensó que .NET era malo e inseguro, mientras que el equipo del servidor tenía la reacción exactamente opuesta y amaba .NET porque tenía la capacidad de bloquear el entorno con los permisos de confianza.

No hay mucho que pueda hacer para cambiar la política corporativa que es muy rápida. Es un proceso lento, muy lento, para que acepten algo nuevo.

1

Forzar todo el tráfico de red a través del puerto 80 es bueno. Y luego, requerir un redirector en el puerto 80 para permitir que varias aplicaciones de servidor "escuchen" en un puerto porque la apertura de cualquier otro puerto sería un "riesgo de seguridad".

1

Probablemente el mayor problema que encuentre es que las empresas que no ejecutan Windows Update regularmente, y no tienen acceso a Internet a sus computadoras. Mis clientes son así, pero deben serlo.

Esto significa que cuando despliega su software, necesita saber qué plataforma .net tiene y decirle que 'actualice a la última' no siempre es una opción. Es realmente molesto tener las actualizaciones instaladas sin Internet, en cada computadora de escritorio, y obtener todas las versiones de .NET, paquetes de servicio y parches de MS implementados. Entonces, si entrega código que requiere algo que el usuario no tiene, es posible que deba volver a escribirlo.

2

Empresas que insisten en seguir con IE6. Eso puede agregar una sobrecarga total si tratas de evitar las restricciones con una aplicación web.

No es un gran problema darles a sus usuarios derechos de administrador para instalar cosas en sus máquinas, como pueden ser algunas configuraciones de seguridad en el navegador en las que pueden insistir.

Cuestiones relacionadas