APLICACIONES WEB.pdf
-
Upload
mayry-penafiel -
Category
Documents
-
view
419 -
download
1
Transcript of APLICACIONES WEB.pdf
![Page 1: APLICACIONES WEB.pdf](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/2.jpg)
- 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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.ec/reader036/viewer/2022081804/54860b11b4af9f780d8b4f6e/html5/thumbnails/7.jpg)
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.