Seguridad en AJAX
Enviado por casc80 • 20 de Noviembre de 2019 • Práctica o problema • 3.070 Palabras (13 Páginas) • 833 Visitas
Actividades[pic 1]
Trabajo: Seguridad en AJAX
Descripción de la actividad
Realización de un trabajo para recopilar los problemas de seguridad que presenta la tecnología WEB 2.0 AJAX y las posibles soluciones a los mismos.
Pautas de elaboración
Esta actividad sobre seguridad en aplicaciones Ajax abarca los problemas de seguridad que tienen este tipo de aplicaciones, que caen en la categoría denominada rich internet applications y en las posibles soluciones a los mismos. Hay que consultar cuantas fuentes relativas al tema se considere y sintetizar la información relevante sin limitarse a copiar el contenido de alguna de ellas.
Criterios de valoración
Se valorará (para todas las actividades):
- Contenidos. Para la realización de los trabajos se deben consultar varias fuentes para después contrastarlas, sintetizarlas y generar un trabajo y opinión personalizados aportando ejemplos gráficos.
- Estructura del documento. Debe ser planificada previamente y tener un apartado de conclusiones y de referencias al final.
- Presentación acorde con la categoría del curso.
- Referencias. Se deben especificar en un apartado al final todas las fuentes consultadas, URL’s de internet, papers, artículos o libros especificando todos los datos de la publicación disponibles. Recalcar la obligatoriedad de la especificación de las referencias consultadas.
Extensión máxima: 10-15 páginas (fuente Georgia 11 e interlineado 1,5).
Introducción.
Asynchronous JavaScript +XML (AJAX) no es sólo una tecnología, si no una colección de tecnologías creadas especialmente para construir aplicaciones web dinámicas. Debido a su amplia funcionalidad y facilidad de uso, AJAX es una de las herramientas más ampliamente usadas en las aplicaciones web actuales.
Una de las principales razones de la creciente popularidad de AJAX es el lenguaje de programación usado –JavaScript (JS)-, que permite muchas ventajas, como: formularios dinámicos con detección de errores, interacción con los usuarios para mensajes de advertencia y/o confirmación, cambios dinámicos en los colores de los fondos, textos o botones de las páginas; toma de acciones basadas en el historial de URLs visitadas, ventanas de control que permiten al usuario visualizar diferentes documentos basados en sus intereses.
Además, AJAX provee la habilidad para crear aplicaciones web robustas que recaigan en un amplio manejo de datos mediante SQL optimizando el ancho de banda, lo que recae en mayor utilidad y velocidad de respuesta de los sitios web.
Google es posiblemente la empresa que le dio el empuje necesario a AJAX para que se convirtiera en un enfoque que muchas empresas están siguiendo, al implementarlo en sus servicios como Google Sugest, Google Maps y GMAIL como ejemplos típicos.
Pero no se debe dejar de lado el hecho de que todas las aplicaciones, incluyendo aquellas basadas en tecnologías AJAX, son vulnerables a exploits que comprometen a los sitios web y bases de datos sobre los que trabajan.
Así, se plantean una serie de vulnerabilidades no exclusivas de la tecnología AJAX, si no que además impactan las tecnologías web 2.0 como lo son: Inyecciones SQL, XSS, entre otras, con el objetivo de lograr blindar de mejor manera los portales web donde se pretenda implementar ésta tecnología.
Desarrollo.
AJAX.
A pesar de ser una aplicación en la cual muchos desarrolladores han basado sus portales web debido a que imita las aplicaciones tradicionales de escritorio, ésta en realidad no se trata solo de una tecnología en sí. AJAX es una colección de tecnologías, así:
- CSS, su función es manipular la presentación de las páginas web, sin tener que cambiar el código HTML.
- DOM, su función es la manipulación dinámica e interacción de los elementos HTML y XML.
- XML, su función es proveer un estándar para el intercambio de datos.
- XMLHttpRequest, su función es proveer un mecanismo de comunicación síncrona y asíncrona con el servidor.
- JavaScript, su función es proveer un lenguaje de programación que se encarga de unir todas las tecnologías y estándares.
Si se compara una aplicación web tradicional con una basada en AJAX, se pueden observar varias diferencias. Principalmente en el modo de interactuar con el usuario y el servidor web, comportamiento de las interfaces gráficas y el consumo del ancho de banda. Por ejemplo, en una aplicación web con esquema tradicional el servidor le retornará una página HTML cada vez que se pulse sobre el link o botón de actualizar.
Mientras que en una basada en AJAX, el cambio se realizará a nivel de segmento de la página. Con los siguientes beneficios: [ 2 ]
- Respuesta más rápida.
- Menor tráfico de datos.
- Mayor interactividad y una mejor experiencia al usuario.
Otra diferencia es la capacidad de simular una aplicación de escritorio. Esto se realiza gracias al objeto XMLHttpRequest, éste objeto puede comunicarse con el servidor de forma asíncrona.
Existen cuatro principios característicos de AJAX: [ 2 ]
- El explorador alberga una aplicación y no contenido. En la manera tradicional de una aplicación web, el explorador solo se encarga de visualizar los documentos HTML que el servidor envía al usuario. Cada vez que el usuario interactúa con la aplicación, el servidor procesa la petición y envía otro documento HTML. Con AJAX, el explorador pasa de un simple visualizador a un elemento más inteligente. Ahora el explorador no solo se encarga de visualizar la aplicación web, si no también realiza procesamiento de datos, modifica la estructura de las páginas y gestiona eventos del usuario y el explorador, todo esto a través de JavaScript.
- El servidor entrega datos y no contenido. En la manera tradicional de una aplicación web, el servidor entrega datos y contenido cada vez que se necesita actualizar la página. En muchos casos el cambio es mínimo, solo cambian algunos datos de la página. Pero en AJAX sucede distinto. Cada vez que necesita datos del servidor, establece una petición asíncrona y sólo recibe los datos que necesita. Aunque la carga inicial de una aplicación AJAX puede ser mayor, las peticiones subsecuentes son más ligeras y rápidas.
- La interacción del usuario con la aplicación puede ser fluida y continua. Una aplicación web tradicional tiene dos formas de comunicarse con el servidor: hipervínculos y formularios. Cada vez que el usuario hace clic sobre un hipervínculo o envía un formulario haciendo clic sobre un botón, tiene que esperar que el servidor procese la petición y envíe la página resultante. Mientras tanto, el usuario tiene que esperar y no puede hacer nada más sobre la aplicación. En AJAX se evitan esos problemas, cada vez que se necesita algo del servidor, se comunica asíncronamente y cuando retorna la respuesta hace el cambio. En éste escenario no se interrumpe el flujo de trabajo, porque el usuario puede seguir trabajando en la aplicación sin tener que esperar. También se pueden manejar una gran variedad de acciones de usuario, permitiendo crear sofisticadas interfaces de usuario, que solo son encontradas en aplicaciones de escritorio.
- La codificación requiere cierto nivel de disciplina. La aplicación AJAX que se carga en el explorador del usuario es compleja y debe correr hasta que se cierre, sin que se vuelva lenta, sin generar desbordes de memoria y sin que se cierre inesperadamente por mal manejo de errores. Por eso es importante usar estándares de programación y patrones que permitan un desarrollo más ordenado y claro.
Pero no todo en AJAX es perfecto, el simple hecho de estar basado en JavaScript trae problemas de accesibilidad, porque no todos los exploradores tienen JavaScript activado. También existen los exploradores que solo muestran texto, éstos no soportan JavaScript por lo que no podrán visualizar la aplicación AJAX.
...