Está en la página 1de 7

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

FACULTAD DE INFORMATICA Y ELECTRONICA


ESCUELA DE INGENIERIA EN SISTEMAS Perteneciente A: Mayra Peafiel Definicin de Aplicacin WEB. En la ingeniera software se denomina aplicacin web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a travs de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicacin software que se codifica en un lenguaje soportado por los navegadores web, y en la que se confa la ejecucin de la aplicacin al navegador. Caractersticas generales: Actualmente son populares por lo prctico al permitir una comunicacin mas fluida y dinmica en la computacin Cliente-Servidor. El alto grado de desarrollo actual permite la actualizacin y el mantenimiento (va Internet) de dichas Aplicaciones, sin que se deba distribuir e instalar software especfico o versiones individuales a un usuario cada vez. Una pgina Web puede contener elementos que permiten una comunicacin activa entre el usuario y la informacin (va Servidor); logrando el usuario acceso a los datos de modo interactivo, gracias a que la pgina responder a cada una de sus acciones. Las aplicaciones web generan dinmicamente una serie de pginas en un formato estndar, como HTML o XHTML, que soportan por los navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente, tales como JavaScript, para aadir elementos dinmicos a la interfaz de usuario. Generalmente cada pgina web en particular se enva al cliente como un documento esttico, pero la secuencia de pginas ofrece al usuario una experiencia interactiva. Las aplicaciones web para Internet e Intranet presentan una serie de ventajas y beneficios con respecto al software de escritorio, con lo cual lograr aprovechar y acoplar los recursos de su empresa de una forma mucho ms prctica que el software tradicional. Entre los beneficios que las aplicaciones desarrolladas para la web tienen respecto a las aplicaciones de escritorio se encuentran: Beneficios de las aplicaciones web: - El trabajo a distancia se realiza con mayor facilidad -Para trabajar en la aplicacin web solo se necesita un computador con un buen navegador Web y conexin a internet.

- Las aplicaciones Web no necesitan conocimientos previos de informtica. Con una aplicacin Web tendr total disponibilidad en cuanto a hora y lugar, podra trabajar en ella en cualquier momento y en cualquier lugar del mundo siempre que tenga conexin a internet. - Las aplicaciones Web le permiten centralizar todas las reas de trabajo. Ventajas de las aplicaciones web - Compatibilidad multiplataforma. Las aplicaciones web tienen un camino mucho ms sencillo para la compatibilidad multiplataforma que las aplicaciones de software descargables. - Actualizacin. Las aplicaciones basadas en web estn siempre actualizadas con el ltimo lanzamiento. - Inmediatez de acceso. Las aplicaciones basadas en web no necesitan ser descargadas, instaladas y configuradas. Usted accede a su cuenta online trabajar sin importar cul es su configuracin o su hardware. - Menos requerimientos de memoria. Las aplicaciones basadas en web tienen muchas ms razonables demandas de memoria RAM de parte del usuario final que los programas instalados localmente. - Menos Bugs. Las aplicaciones basadas en web debern ser menos propensas a colgarse y crear problemas tcnicos debido a software o conflictos de hardware con otras aplicaciones existentes, protocolos o software personal interno. Con aplicaciones basadas en web, todos utilizan la misma versin, y todos los bugs pueden ser corregidos tan pronto como son descubiertos. - Mltiples usuarios concurrentes. Las aplicaciones basadas en web pueden realmente ser utilizada por mltiples usuarios al mismo tiempo. Procedimientos de seguridad bsicos para aplicaciones Web

El tema de la creacin de una aplicacin Web segura es muy amplio ya que requiere realizar un estudio para comprender los puntos vulnerables de la seguridad. Tambin es necesario familiarizarse con las posibilidades de seguridad que ofrecen Windows, .NET Framework y ASP.NET. Finalmente, resulta vital entender cmo utilizar estas funciones de seguridad para contrarrestar las amenazas. Aunque no se tenga mucha experiencia en seguridad, existen unas medidas bsicas que se deberan adoptar para proteger cualquier aplicacin Web. La lista siguiente proporciona pautas de seguridad mnima que se aplican a todas las aplicaciones Web y que se deberan seguir:

Recomendaciones generales de seguridad para aplicaciones Web Ejecutar aplicaciones con privilegios mnimos Conocer a los usuarios Protegerse contra entradas malintencionadas Tener acceso seguro a bases de datos Crear mensajes de error seguros Mantener segura la informacin confidencial Usar cookies de forma segura Protegerse contra amenazas de denegacin de servicio Nota Para obtener unas directrices completas y detalladas sobre seguridad que le ayudarn a disear, desarrollar, configurar e implementar aplicaciones Web ASP.NET ms seguras, vea los mdulos de seguridad que se proporcionan en Microsoft Patterns and Practices.

Recomendaciones generales de seguridad para aplicaciones Web No obstante, incluso los mtodos de seguridad de aplicaciones ms elaborados pueden verse comprometidos si un usuario malintencionado logra obtener acceso a los equipos usando medios simples. Siga estas instrucciones:

Realice copias de seguridad con asiduidad y gurdelas en lugar seguro. Mantenga el equipo del servidor en un lugar fsico seguro, de forma que los usuarios no autorizados no puedan tener acceso a l, apagarlo o llevrselo. Utilice el sistema de archivos NTFS de Windows, no el FAT32. NTFS ofrece mucha ms seguridad que el FAT32. Para obtener informacin detallada, vea la documentacin de Windows. Proteja el equipo del servidor Web y todos los dems equipos de la misma red con contraseas rigurosas. Proteja los servicios IIS. Para obtener una informacin ms detallada, visite el sitio Web de Microsoft TechNet Security Center. Cierre los puertos que no se utilicen y desactive los servicios no usados. Ejecute un programa antivirus que supervise el trfico entrante y saliente. Establezca y haga respetar una poltica que prohba a los usuarios tener sus contraseas escritas en una ubicacin fcil de localizar.

Use un firewall. Para conocer las recomendaciones, vea el artculo en ingls Microsoft Firewall Guidelines en el sitio Web sobre seguridad de Microsoft. Instale las ltimas revisiones de seguridad de Microsoft y otros proveedores. Por ejemplo, para obtener una lista con los ltimos boletines de seguridad para todos los productos Microsoft, consulte Microsoft TechNet Security Center. Otros fabricantes tienen sitios parecidos. Use las funciones de registro de eventos de Windows y examine los registros con frecuencia para detectar actividades sospechosas. Esto incluye los intentos repetidos de iniciar una sesin en el sistema o la existencia de un nmero extremadamente alto de solicitudes en el servidor Web.

Ejecutar aplicaciones con privilegios mnimos Cuando la aplicacin se ejecuta, lo hace en un contexto que tiene privilegios especficos en el equipo local y posiblemente en equipos remotos. Para obtener informacin sobre cmo configurar identidad de aplicaciones, vea Configurar la identidad de procesos en ASP.NET. Para ejecutar con privilegios mnimos, siga estas instrucciones:

No ejecute la aplicacin con la identidad de un usuario de sistema (administrador). Ejecute la aplicacin en el contexto de un usuario con los mnimos privilegios factibles. Establezca permisos (Listas de control de acceso, o ACL) en todos los recursos requeridos por la aplicacin y utilice la configuracin menos permisiva posible. Por ejemplo, si resulta viable en la aplicacin, establezca que los archivos sean de slo lectura. Para obtener una lista de los permisos ACL mnimos requeridos para la identidad de su aplicacin ASP.NET, vea Listas de control de acceso (ACL) necesarias para ASP.NET. Mantenga los archivos de la aplicacin Web en una carpeta ubicada debajo de la raz de la aplicacin. No d a los usuarios la opcin de especificar una ruta que permita tener acceso a ningn archivo de la aplicacin. Esto ayudar a evitar que los usuarios obtengan acceso a la raz del servidor.

Conocer a los usuarios En muchas aplicaciones, los usuarios tienen acceso al sitio de forma annima (sin tener que proporcionar las credenciales). Si es el caso, la aplicacin obtiene acceso a recursos al ejecutarse en el contexto de un usuario predefinido. De forma predeterminada, este contexto es el usuario ASPNET local (en Windows 2000 o Windows XP) o el usuario NETWORK SERVICE (en Windows Server 2003) del equipo del servidor Web. Para restringir el acceso nicamente a los usuarios que se hayan autenticado, siga estas instrucciones:

Si la aplicacin pertenece a una intranet, configrela para usar la seguridad integrada de Windows. De este modo, las credenciales de inicio de sesin de los usuarios se pueden usar para obtener acceso a los recursos. Para obtener ms informacin, vea Suplantacin de ASP.NET.

Si precisa recabar credenciales del usuario, utilice una de las estrategias de autenticacin de ASP.NET. Para obtener un ejemplo, vea Administrar usuarios mediante suscripciones.

Protegerse contra entradas malintencionadas Como regla general, nunca se debe dar por sentado que la entrada proveniente de los usuarios es segura. A los usuarios malintencionados les resulta fcil enviar informacin potencialmente peligrosa desde el cliente a la aplicacin. Para protegerse contra las entradas malintencionadas, siga estas instrucciones:

En las pginas Web ASP.NET, filtre la entrada de los usuarios para comprobar si existen etiquetas HTML, que pueden contener una secuencia de comandos. Para obtener informacin detallada, vea Cmo: Proteger una aplicacin Web frente a ataques mediante secuencias de comandos aplicando codificacin HTML a las cadenas. Nunca repita (muestre) entrada de los usuarios sin filtrar. Antes de mostrar informacin que no sea de confianza, codifique los elementos HTML para convertir cualquier secuencia de comandos potencialmente peligrosa en cadenas visibles, pero no ejecutables. No almacene nunca informacin proporcionada por el usuario sin filtrar en una base de datos. Si desea aceptar algn elemento de cdigo HTML de un usuario, fltrelo manualmente. En el filtro, defina explcitamente lo que aceptar. No cree un filtro que intente eliminar cualquier entrada malintencionada, ya que es muy difcil anticipar todas las posibilidades. No d por sentado que la informacin obtenida del encabezado de solicitud HTTP (en el objeto HttpRequest) es segura. Proteja las cadenas de consulta, cookies, etc. Tenga en cuenta que la informacin que el explorador enva al servidor (informacin del agente de usuario) puede ser suplantada, en caso de que resulte importante para la aplicacin en cuestin. Si es posible, no almacene informacin confidencial en un lugar accesible desde el explorador, como campos ocultos o cookies. Por ejemplo, no almacene una contrasea en una cookie. Nota El estado de vista se almacena en un campo oculto en un formato codificado que, de forma predeterminada, incluye un cdigo de autenticacin de mensajes (MAC) para que la pgina pueda determinar si se ha manipulado el estado de vista. Si la informacin confidencial se almacena en estado de vista, cifre estableciendo la propiedad ViewStateEncryptionMode de la pgina en true. Para obtener ms informacin, vea Proteger el estado de vista.

Tener acceso seguro a bases de datos

Normalmente, las bases de datos tienen sus propios sistemas de seguridad. Un aspecto importante de una aplicacin Web protegida es disear un modo de que sta pueda tener acceso a la base de datos de forma segura. Siga estas instrucciones:

Use el sistema de seguridad inherente de la base de datos para limitar quin puede tener acceso a los recursos de dicha base. La estrategia exacta depender de la base de datos y de la aplicacin: o Si resulta viable en la aplicacin, use la seguridad integrada de forma que slo los usuarios autenticados mediante Windows puedan tener acceso a la base de datos. La seguridad integrada es ms segura que pasar las credenciales explcitas a la base de datos. o Si la aplicacin utiliza el acceso annimo, cree un nico usuario con permisos muy limitados, y haga que las consultas se ejecuten conectndose como dicho usuario. No cree instrucciones SQL concatenando cadenas que contengan informacin aportada por los usuarios. En su lugar, cree una consulta parametrizada y use la entrada del usuario para establecer los valores de los parmetros. Si debe almacenar un nombre de usuario y su contrasea en algn lugar para utilizarlos como las credenciales de inicio de sesin de la base de datos, almacnelos en el archivo Web.config y asegure el archivo con configuracin protegida. Para obtener informacin detallada, vea Cifrar informacin de configuracin mediante una configuracin protegida.

Para obtener ms informacin sobre cmo tener acceso a los datos de forma segura, vea Proteger el acceso a datos y Proteger aplicaciones de ADO.NET. Crear mensajes de error seguros Si no se es cuidadoso, un usuario malintencionado puede deducir informacin importante sobre la aplicacin a partir de los mensajes de error que sta muestra. Siga estas instrucciones:

No escriba mensajes de error que presenten informacin que pudiera resultar til a los usuarios malintencionados, como un nombre de usuario. Configure la aplicacin para que no muestre errores detallados a los usuarios. Si desea mostrar mensajes de error detallados para la depuracin, determine primero si quien los recibir es un usuario local con respecto al servidor Web. Para obtener informacin detallada, vea Cmo: Mostrar mensajes de error seguros. Utilice el elemento de configuracin customErrors para controlar quin ve las excepciones desde el servidor. Cree un sistema de administracin de errores personalizado para las situaciones que sean propensas a los errores, como el acceso a las bases de datos. Para obtener ms informacin, vea Control de errores en aplicaciones y pginas ASP.NET.

Mantener segura la informacin confidencial

Informacin confidencial es toda aquella informacin que se desea conservar privada. Un ejemplo de informacin confidencial es una contrasea o una clave cifrada. Si un usuario malintencionado consigue llegar a la informacin confidencial, los datos protegidos se vern expuestos. Siga estas instrucciones:

Si la aplicacin transmite informacin confidencial entre el explorador y el servidor, plantese utilizar el protocolo SSL (Secure Sockets Layer). Para obtener detalles sobre cmo asegurar un sitio con SSL, vea el artculo Q307267 en ingls, "HOW TO: Secure XML Web Services with Secure Socket Layer in Windows 2000" en Microsoft Knowledge Base en el sitio http://support.microsoft.com. Utilice configuracin protegida para proteger la informacin confidencial en archivos de configuracin como los archivos Web.config o Machine.config. Para obtener ms informacin, vea Cifrar informacin de configuracin mediante una configuracin protegida. Si debe almacenar informacin confidencial, no lo haga en una pgina Web, ni siquiera en un formato que piense que la gente no podr verlo (por ejemplo, cdigo del servidor). Utilice los algoritmos de cifrado de alta seguridad proporcionados en el espacio de nombres System.Security.Cryptography.

Usar cookies de forma segura Las cookies constituyen un modo til de almacenar la informacin especfica disponible sobre los usuarios. Sin embargo, como se envan al explorador del equipo, son vulnerables a la suplantacin u otros usos malintencionados. Siga estas instrucciones:

No almacene informacin vital en cookies. Por ejemplo, no almacene, ni siquiera temporalmente, la contrasea de un usuario en una cookie. Como norma, no guarde nada en una cookie que, si se produce una suplantacin, pueda comprometer el funcionamiento de su aplicacin. En lugar de eso, guarde en la cookie una referencia a la ubicacin del servidor en la que se encuentra la informacin. Establezca el perodo de tiempo mnimo posible para la fecha de caducidad de las cookies. Si es posible, evite las cookies permanentes. Plantese cifrar la informacin que contienen las cookies. Considere establecer las propiedades Secure y HttpOnly de las cookies como true.