La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword.

Presentaciones similares


Presentación del tema: "Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword."— Transcripción de la presentación:

1 Pierre Sergei Zuppa Azúa Diseño

2 Métodos de desarrollo para web Diseño Keyword

3 Métodos de desarrollo para web Diseño Aplicaciones Web Aplicaciones cliente/servidor que utilizan el protocolo HTTP para interactuar con los usuarios u otros sistemas El cliente utilizado por los usuarios es habitualmente un navegador Los problemas de seguridad pueden provenir de los programas web en los que se apoyan, aunque en su mayor parte son consecuencia de fallos en la lógica y el diseño de la propia aplicación Seguridad en Sistemas Informáticos e Internet3

4 Métodos de desarrollo para web Diseño Arquitectura cliente-servidor El servidor es la computadora encargada de proporcionar el contenido. Para ello necesitamos instalar un servidor web en dicha máquina. El cliente, que es el encargado de solicitar la información al servidor y mostrarla al usuario. Es el navegador (Internet Explorer, Firefox, Chrome, entre otros). El funcionamiento de una aplicación es simple, el cliente emite una petición de un recurso que se encuentra en el servidor, y el servidor devuelve el recurso solicitado que es mostrado por el navegador.

5 Métodos de desarrollo para web Diseño Diseño de interfaces de usuario Es el diseño de aplicaciones de software, y sitios web enfocado en la experiencia de usuario y la interacción. Es una actividad multidisciplinar que involucra a varias ramas como el diseño gráfico, industrial, web, de software y la ergonomía.

6 Métodos de desarrollo para web Diseño Principios para el diseño de IU Familiaridad del usuario Consistencia Mínima sorpresa Recuperabilidad Guía al usuario Diversidad de usuarios

7 Métodos de desarrollo para web Diseño Prototipos en la implementación del diseño de IU Prototipos Estáticos Prototipos Dinámicos Prototipos Robustos

8 Métodos de desarrollo para web Diseño Interacción del usuario en el diseño de IU 1.Manipulación directa: Interacción directa con los objetos de la pantalla. Rápida e intuitiva. Fácil de aprender. 2.Selección de menús: El usuario selecciona un comando de una lista de posibilidades. Evita errores del usuario. Se requiere teclear poco. Lenta para usuarios experimentados. 3.Llenado de formularios: Introducción de datos sencilla en los campos de un formulario. Fácil de aprender. Ocupa mucho espacio en la pantalla. 4.Lenguaje de comandos: Los usuarios emiten un comando especial y los parámetros asociados para indicar al sistema que hacer. Poderoso y flexible. Difícil de aprender. Administración de errores pobre. 5.Lenguaje Natural: El usuario emite comandos en lenguaje natural. Accesible a usuarios casuales. Fácil de ampliar.

9 Métodos de desarrollo para web Diseño Color en el diseño de la IU No utilizar más de 4 ó 5 colores diferentes en una ventana y no más de 7 en la interfaz total del sistema. Utilizar un cambio de color para mostrar un cambio en el estado del sistema. Utilizar el código de colores para apoyar la tarea que los usuarios están tratando de llevar a cabo. Utilizar el código de colores en una forma consciente y consistente. Ser cuidadoso al utilizar pares de colores Si se utilizan muchos colores o si son muy brillantes, el despliegue puede ser confuso.

10 Métodos de desarrollo para web Diseño Pautas para evaluar un diseño de IU Visibilidad del estado del sistema Semejanza del sistema al mundo real Control y libertad por parte del usuario Consistencia y estandarización Prevención de errores Reconocimiento de acciones y opciones Flexibilidad y eficiencia en el uso Estética y diseño minimalista Reconocimiento de errores, diagnóstico y recuperación Ayuda y documentación

11 Métodos de desarrollo para web Diseño Seguridad en las aplicaciones Web ClienteServidorAplicación Comunicación Código móvil Lenguajes de Macro: VBA Lenguajes de Script: JavaScript y VBScript Applets Java Controles ActiveX Servidor Web Servidor de Bases de Datos Lenguajes de servidor Control de acceso Validación de datos de entrada Programación segura SSL

12 Métodos de desarrollo para web Diseño ¿Cuánta seguridad es necesaria? La seguridad supone un coste económico y de eficiencia. Hay que disponer de la adecuada, ni más ni menos Reglas El riesgo cero no es práctico Hay diversas formas de mitigar el riesgo No se puede gastar un millón para proteger un peso

13 Métodos de desarrollo para web Diseño Amenazas 1.Entrada no validada 2.Control de acceso roto 3.Administración de sesión y autentificación rota 4.Fallos de Cross Site Scripting (XSS) 5.Desbordamiento del buffer 6.Fallos de inyección 7.Manejo inadecuado de errores 8.Almacenamiento inseguro 9.Negación de servicio 10.Administración de configuración insegura

14 Métodos de desarrollo para web Diseño Guías de seguridad Validar la entrada y la salida Fallar con seguridad Mantener un esquema de seguridad simple Utilizar componentes de confianza La seguridad a través de la oscuridad no funciona Mantener los privilegios al mínimo y separados

15 Métodos de desarrollo para web Diseño Desarrollo de una aplicación Web requiere Una serie de herramientas: Servidores Web Servidores de aplicaciones Servidores de bases de datos Lenguajes de servidor Proporciona muchos servicios y es muy probable que algunos de ellos no sean necesarios para el funcionamiento de la aplicación web En tal caso es conveniente deshabilitarlos Para ello el servidor dispone de múltiples opciones de configuración que es conveniente adaptar a las circunstancias concretas de la aplicación Web Configuraciones por defecto inadecuadas: ficheros de ejemplo, visualización de mensajes de error. Activación de cuentas por defecto: admin., system, test, guest, demo.

16 Métodos de desarrollo para web Diseño Servidor de bases de datos Recomendaciones No ejecutar el servidor como root No dar a ningún usuario salvo al root permiso de acceso a la tabla de usuarios Asegurarse de que el root tiene un password Restringir el acceso remoto al servidor No dar a un usuario más permisos que los estrictamente necesarios Almacenar los datos sensibles de forma encriptada Validar las instrucciones SQL antes de enviarlas al servidor No revelar información sobre la base de datos en los mensajes de error (esquema, naturaleza de los datos almacenados, fragmentos SQL) Proteger el código donde aparezca información sensible para el acceso al servidor Nota: No ejecutar el servidor como root: crear un usuario especial para ello.

17 Métodos de desarrollo para web Diseño Lenguajes de servidor – Proteger el código fuente para evitar que pueda ser visualizado, especialmente cuando contiene información sensible como pueden ser los datos de conexión al servidor de bases de datos – Sacar el código fuente sensible fuera de la raíz de la web

18 Métodos de desarrollo para web Diseño Control de acceso Un aspecto muy importante de una aplicación Web es el control de acceso de los usuarios a zonas restringidas de la aplicación Autentificación Autorización 18

19 Métodos de desarrollo para web Diseño AUTENTIFICACIÓN Es el proceso de determinar si un usuario es quien dice ser Esto se puede hacer de varias maneras. Autentificación HTTP básica Autentificación basada en la aplicación 19

20 Métodos de desarrollo para web Diseño Autentificación HTTP básica Ventajas Es muy simple de implementar Se pueden fijar restricciones de acceso por usuario y contraseña o por otros conceptos como por ejemplo el dominio o dirección IP de la máquina Inconvenientes Los datos viajan por la red sin encriptar No se puede hacer Logout, la única forma es cerrar el navegador No hay control sobre el diseño de la ventana de diálogo 20

21 Métodos de desarrollo para web Diseño Autentificación basada en la aplicación La propia aplicación puede implementar un mecanismo de autentificación que implica la presentación de un formulario para que el usuario introduzca sus credenciales y el uso de una base de datos para verificar la corrección de éstas Es más costosa pero más flexible ya que permite establecer diferentes permisos y niveles de acceso en función del usuario que solicita la autentificación 21

22 Métodos de desarrollo para web Diseño Passwords Recomendaciones Restringir los valores para los nombres de usuarios. Los que representan nombres reales suponen dar pistas a los atacantes Almacenar los passwords de forma segura, protegiendo el acceso a la base de datos Seguir reglas de seguridad para su elección Bloquear una cuenta cuando se detecta un número determinado de intentos de acceso incorrectos Actualizar los passwords periódicamente y mantener un histórico para evitar repeticiones Recuperación de passwords Automáticamente A través de técnicos de soporte Seguridad en Sistemas Informáticos e Internet22

23 Métodos de desarrollo para web Diseño Recuperación de passwords automática Plantear durante el registro del usuario varias preguntas a las que sólo él puede responder Enviar el password por correo electrónico. Es recomendable que tenga fecha de expiración y se pida su cambio cuando el usuario se conecte Comunicar el password por teléfono al usuario a requerimiento del mismo – Deben registrarse todos los intentos de recuperación y fijar un límite de tiempo pasado el cual sería preciso recurrir al técnico – Para recuperar el password el usuario deberá responder a las preguntas correctamente – Comunicar el password por teléfono al usuario a requerimiento del mismo. Es más seguro y puede ser registrado 23

24 Métodos de desarrollo para web Diseño Sesiones – Una vez que el usuario se ha autentificado introduciendo su nombre de usuario y su clave, es preciso mantener esta autentificación en cada conexión subsiguiente – Para evitar tener que mostrar nuevamente la ventana de autentificación se recurre habitualmente al uso de sesiones, un mecanismo que permite mantener el estado entre diferentes peticiones HTTP El mecanismo Una vez autentificado, al usuario se le asigna un identificador de sesión Este identificador acompañará invisiblemente a cada petición del usuario, con lo cual se garantizará que la petición proviene de un usuario previamente autentificado El identificador de sesión se suele almacenar en la propia máquina del cliente, mediante una cookie Sólo se debe almacenar el identificador de la sesión; cualquier otro dato del usuario se almacenará en el servidor 24

25 Métodos de desarrollo para web Diseño Sesiones Sistema de gestión Establecer un tiempo límite de vida para la sesión Regenerar el identificador de sesión cada cierto tiempo Detectar intentos de ataque de fuerza bruta con identificadores de sesión Requerir una nueva autentificación del usuario cuando vaya a realizar una operación importante Proteger los identificadores de sesión durante su transmisión Destruir la cookie al finalizar la sesión para evitar el acceso de otro usuario en un entorno público 25

26 Métodos de desarrollo para web Diseño Estrategias de protección Modelos posibles 1.Aceptar únicamente datos válidos conocidos 2.Rechazar datos no válidos conocidos 3.Sanear todos los datos 26

27 Métodos de desarrollo para web Diseño SSL (Secure Socket Layer) Es un protocolo para asegurar el transporte de datos entre el cliente y el servidor web. Proporciona una comunicación segura entre cliente y servidor permitiendo la autentificación mutua, el uso de firmas digitales y garantizando la privacidad mediante encriptación. Una sesión SSL se establece según una secuencia de operaciones Podemos reconocer una conexión HTTP sobre SSL porque aparece el prefijo ‘https’ en lugar de ‘http’ en la URL Seguridad en Sistemas Informáticos e Internet27

28 Métodos de desarrollo para web Diseño Frase "Las organizaciones gastan millones de dólares en firewalls y dispositivos de seguridad, pero tiran el dinero porque ninguna de estas medidas cubre el eslabón más débil de la cadena de seguridad: la gente que usa y administra los ordenadores“ Kevin Mitnick


Descargar ppt "Pierre Sergei Zuppa Azúa Diseño. Métodos de desarrollo para web Diseño Keyword."

Presentaciones similares


Anuncios Google