APLICACIONES WEB.pdf

7
ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO FACULTAD DE INFORMATICA Y ELECTRONICA ESCUELA DE INGENIERIA EN SISTEMAS Perteneciente A: Mayra Peñafiel Definición de Aplicación WEB. En la ingeniería software se denomina aplicación web a aquellas aplicaciones que los usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet mediante un navegador. En otras palabras, es una aplicación software que se codifica en un lenguaje soportado por los navegadores web, y en la que se confía la ejecución de la aplicación al navegador. Características generales: Actualmente son populares por lo práctico al permitir una comunicación mas fluida y dinámica en la computación Cliente-Servidor. El alto grado de desarrollo actual permite la actualización y el mantenimiento (vía Internet) de dichas Aplicaciones, sin que se deba distribuir e instalar software específico o versiones individuales a un usuario cada vez. Una página Web puede contener elementos que permiten una comunicación activa entre el usuario y la información (vía Servidor); logrando el usuario acceso a los datos de modo interactivo, gracias a que la página responderá a cada una de sus acciones. Las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar, como HTML o XHTML, que soportan por los navegadores web comunes. Se utilizan lenguajes interpretados en el lado del cliente, tales como JavaScript, para añadir elementos dinámicos a la interfaz de usuario. Generalmente cada página web en particular se envía al cliente como un documento estático, pero la secuencia de páginas 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 más práctica 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 aplicación web solo se necesita un computador con un buen navegador Web y conexión a internet.

Transcript of APLICACIONES WEB.pdf

Page 1: APLICACIONES WEB.pdf

ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO

FACULTAD DE INFORMATICA Y ELECTRONICA

ESCUELA DE INGENIERIA EN SISTEMAS

Perteneciente A: Mayra Peñafiel

Definición de Aplicación WEB.

En la ingeniería software se denomina aplicación web a aquellas aplicaciones que los

usuarios pueden utilizar accediendo a un servidor web a través de Internet o de una intranet

mediante un navegador. En otras palabras, es una aplicación software que se codifica en un

lenguaje soportado por los navegadores web, y en la que se confía la ejecución de la

aplicación al navegador.

Características generales:

Actualmente son populares por lo práctico al permitir una comunicación mas fluida y

dinámica en la computación Cliente-Servidor. El alto grado de desarrollo actual permite la

actualización y el mantenimiento (vía Internet) de dichas Aplicaciones, sin que se deba

distribuir e instalar software específico o versiones individuales a un usuario cada vez.

Una página Web puede contener elementos que permiten una comunicación activa entre el

usuario y la información (vía Servidor); logrando el usuario acceso a los datos de modo

interactivo, gracias a que la página responderá a cada una de sus acciones.

Las aplicaciones web generan dinámicamente una serie de páginas en un formato estándar,

como HTML o XHTML, que soportan por los navegadores web comunes. Se utilizan

lenguajes interpretados en el lado del cliente, tales como JavaScript, para añadir elementos

dinámicos a la interfaz de usuario. Generalmente cada página web en particular se envía al

cliente como un documento estático, pero la secuencia de páginas 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 más práctica 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 aplicación web solo se necesita un computador con un buen navegador

Web y conexión a internet.

Page 2: APLICACIONES WEB.pdf

- Las aplicaciones Web no necesitan conocimientos previos de informática.

Con una aplicación 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

conexión 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 más sencillo para la compatibilidad

multiplataforma que las aplicaciones de software descargables.

- Actualización.

Las aplicaciones basadas en web están 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 cuál es su configuración o su

hardware.

- Menos requerimientos de memoria.

Las aplicaciones basadas en web tienen muchas más razonables demandas de memoria

RAM de parte del usuario final que los programas instalados localmente.

- Menos Bugs.

Las aplicaciones basadas en web deberán ser menos propensas a colgarse y crear

problemas técnicos 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 versión, y todos los bugs pueden ser corregidos tan pronto como son

descubiertos.

- Múltiples usuarios concurrentes.

Las aplicaciones basadas en web pueden realmente ser utilizada por múltiples usuarios al

mismo tiempo.

Procedimientos de seguridad básicos para aplicaciones Web

Page 3: APLICACIONES WEB.pdf

El tema de la creación de una aplicación Web segura es muy amplio ya que requiere

realizar un estudio para comprender los puntos vulnerables de la seguridad. También es

necesario familiarizarse con las posibilidades de seguridad que ofrecen Windows, .NET

Framework y ASP.NET. Finalmente, resulta vital entender cómo utilizar estas funciones de

seguridad para contrarrestar las amenazas.

Aunque no se tenga mucha experiencia en seguridad, existen unas medidas básicas que se

deberían adoptar para proteger cualquier aplicación Web. La lista siguiente proporciona

pautas de seguridad mínima que se aplican a todas las aplicaciones Web y que se deberían

seguir:

Recomendaciones generales de seguridad para aplicaciones Web

Ejecutar aplicaciones con privilegios mínimos

Conocer a los usuarios

Protegerse contra entradas malintencionadas

Tener acceso seguro a bases de datos

Crear mensajes de error seguros

Mantener segura la información confidencial

Usar cookies de forma segura

Protegerse contra amenazas de denegación de servicio

Nota

Para obtener unas directrices completas y detalladas sobre seguridad que le ayudarán a

diseñar, desarrollar, configurar e implementar aplicaciones Web ASP.NET más seguras,

vea los módulos de seguridad que se proporcionan en Microsoft Patterns and Practices.

Recomendaciones generales de seguridad para aplicaciones Web

No obstante, incluso los métodos de seguridad de aplicaciones más 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 guárdelas en lugar seguro.

Mantenga el equipo del servidor en un lugar físico seguro, de forma que los

usuarios no autorizados no puedan tener acceso a él, apagarlo o llevárselo.

Utilice el sistema de archivos NTFS de Windows, no el FAT32. NTFS ofrece

mucha más seguridad que el FAT32. Para obtener información detallada, vea la

documentación de Windows.

Proteja el equipo del servidor Web y todos los demás equipos de la misma red con

contraseñas rigurosas.

Proteja los servicios IIS. Para obtener una información más 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 tráfico entrante y saliente.

Establezca y haga respetar una política que prohíba a los usuarios tener sus

contraseñas escritas en una ubicación fácil de localizar.

Page 4: APLICACIONES WEB.pdf

Use un firewall. Para conocer las recomendaciones, vea el artículo en inglés

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 sesión en el sistema o la existencia de un número extremadamente

alto de solicitudes en el servidor Web.

Ejecutar aplicaciones con privilegios mínimos

Cuando la aplicación se ejecuta, lo hace en un contexto que tiene privilegios específicos en

el equipo local y posiblemente en equipos remotos. Para obtener información sobre cómo

configurar identidad de aplicaciones, vea Configurar la identidad de procesos en ASP.NET.

Para ejecutar con privilegios mínimos, siga estas instrucciones:

No ejecute la aplicación con la identidad de un usuario de sistema (administrador).

Ejecute la aplicación en el contexto de un usuario con los mínimos privilegios

factibles.

Establezca permisos (Listas de control de acceso, o ACL) en todos los recursos

requeridos por la aplicación y utilice la configuración menos permisiva posible. Por

ejemplo, si resulta viable en la aplicación, establezca que los archivos sean de sólo

lectura. Para obtener una lista de los permisos ACL mínimos requeridos para la

identidad de su aplicación ASP.NET, vea Listas de control de acceso (ACL)

necesarias para ASP.NET.

Mantenga los archivos de la aplicación Web en una carpeta ubicada debajo de la

raíz de la aplicación. No dé a los usuarios la opción de especificar una ruta que

permita tener acceso a ningún archivo de la aplicación. Esto ayudará a evitar que los

usuarios obtengan acceso a la raíz del servidor.

Conocer a los usuarios

En muchas aplicaciones, los usuarios tienen acceso al sitio de forma anónima (sin tener que

proporcionar las credenciales). Si es el caso, la aplicación 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 aplicación pertenece a una intranet, configúrela para usar la seguridad

integrada de Windows. De este modo, las credenciales de inicio de sesión de los

usuarios se pueden usar para obtener acceso a los recursos. Para obtener más

información, vea Suplantación de ASP.NET.

Page 5: APLICACIONES WEB.pdf

Si precisa recabar credenciales del usuario, utilice una de las estrategias de

autenticación 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 fácil enviar información

potencialmente peligrosa desde el cliente a la aplicación. Para protegerse contra las

entradas malintencionadas, siga estas instrucciones:

En las páginas Web ASP.NET, filtre la entrada de los usuarios para comprobar si

existen etiquetas HTML, que pueden contener una secuencia de comandos. Para

obtener información detallada, vea Cómo: Proteger una aplicación Web frente a

ataques mediante secuencias de comandos aplicando codificación HTML a las

cadenas.

Nunca repita (muestre) entrada de los usuarios sin filtrar. Antes de mostrar

información 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 información proporcionada por el usuario sin filtrar en una base

de datos.

Si desea aceptar algún elemento de código HTML de un usuario, fíltrelo

manualmente. En el filtro, defina explícitamente lo que aceptará. No cree un filtro

que intente eliminar cualquier entrada malintencionada, ya que es muy difícil

anticipar todas las posibilidades.

No dé por sentado que la información obtenida del encabezado de solicitud HTTP

(en el objeto HttpRequest) es segura. Proteja las cadenas de consulta, cookies, etc.

Tenga en cuenta que la información que el explorador envía al servidor

(información del agente de usuario) puede ser suplantada, en caso de que resulte

importante para la aplicación en cuestión.

Si es posible, no almacene información confidencial en un lugar accesible desde el

explorador, como campos ocultos o cookies. Por ejemplo, no almacene una

contraseña en una cookie.

Nota

El estado de vista se almacena en un campo oculto en un formato codificado que, de forma

predeterminada, incluye un código de autenticación de mensajes (MAC) para que la página

pueda determinar si se ha manipulado el estado de vista. Si la información confidencial se

almacena en estado de vista, cifre estableciendo la propiedad ViewStateEncryptionMode de

la página en true. Para obtener más información, vea Proteger el estado de vista.

Tener acceso seguro a bases de datos

Page 6: APLICACIONES WEB.pdf

Normalmente, las bases de datos tienen sus propios sistemas de seguridad. Un aspecto

importante de una aplicación Web protegida es diseñar 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 quién puede

tener acceso a los recursos de dicha base. La estrategia exacta dependerá de la base

de datos y de la aplicación:

o Si resulta viable en la aplicación, use la seguridad integrada de forma que

sólo los usuarios autenticados mediante Windows puedan tener acceso a la

base de datos. La seguridad integrada es más segura que pasar las

credenciales explícitas a la base de datos.

o Si la aplicación utiliza el acceso anónimo, cree un único usuario con

permisos muy limitados, y haga que las consultas se ejecuten conectándose

como dicho usuario.

No cree instrucciones SQL concatenando cadenas que contengan información

aportada por los usuarios. En su lugar, cree una consulta parametrizada y use la

entrada del usuario para establecer los valores de los parámetros.

Si debe almacenar un nombre de usuario y su contraseña en algún lugar para

utilizarlos como las credenciales de inicio de sesión de la base de datos,

almacénelos en el archivo Web.config y asegure el archivo con configuración

protegida. Para obtener información detallada, vea Cifrar información de

configuración mediante una configuración protegida.

Para obtener más información sobre cómo 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 información importante

sobre la aplicación a partir de los mensajes de error que ésta muestra. Siga estas

instrucciones:

No escriba mensajes de error que presenten información que pudiera resultar útil a

los usuarios malintencionados, como un nombre de usuario.

Configure la aplicación para que no muestre errores detallados a los usuarios. Si

desea mostrar mensajes de error detallados para la depuración, determine primero si

quien los recibirá es un usuario local con respecto al servidor Web. Para obtener

información detallada, vea Cómo: Mostrar mensajes de error seguros.

Utilice el elemento de configuración customErrors para controlar quién ve las

excepciones desde el servidor.

Cree un sistema de administración de errores personalizado para las situaciones que

sean propensas a los errores, como el acceso a las bases de datos. Para obtener más

información, vea Control de errores en aplicaciones y páginas ASP.NET.

Mantener segura la información confidencial

Page 7: APLICACIONES WEB.pdf

Información confidencial es toda aquella información que se desea conservar privada. Un

ejemplo de información confidencial es una contraseña o una clave cifrada. Si un usuario

malintencionado consigue llegar a la información confidencial, los datos protegidos se

verán expuestos. Siga estas instrucciones:

Si la aplicación transmite información confidencial entre el explorador y el servidor,

plantéese utilizar el protocolo SSL (Secure Sockets Layer). Para obtener detalles

sobre cómo asegurar un sitio con SSL, vea el artículo Q307267 en inglés, "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 configuración protegida para proteger la información confidencial en

archivos de configuración como los archivos Web.config o Machine.config. Para

obtener más información, vea Cifrar información de configuración mediante una

configuración protegida.

Si debe almacenar información confidencial, no lo haga en una página Web, ni

siquiera en un formato que piense que la gente no podrá verlo (por ejemplo, código

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 información específica disponible

sobre los usuarios. Sin embargo, como se envían al explorador del equipo, son vulnerables

a la suplantación u otros usos malintencionados. Siga estas instrucciones:

No almacene información vital en cookies. Por ejemplo, no almacene, ni siquiera

temporalmente, la contraseña de un usuario en una cookie. Como norma, no guarde

nada en una cookie que, si se produce una suplantación, pueda comprometer el

funcionamiento de su aplicación. En lugar de eso, guarde en la cookie una

referencia a la ubicación del servidor en la que se encuentra la información.

Establezca el período de tiempo mínimo posible para la fecha de caducidad de las

cookies. Si es posible, evite las cookies permanentes.

Plantéese cifrar la información que contienen las cookies.

Considere establecer las propiedades Secure y HttpOnly de las cookies como true.