Problemas De Seguridad Que Presenta La Tecnología WEB 2.0 AJAX Y Las Posibles Soluciones A Los Mismos
Enviado por josemark8 • 24 de Septiembre de 2013 • 2.200 Palabras (9 Páginas) • 2.921 Visitas
Problemas de seguridad que presenta la tecnología WEB 2.0 AJAX y las posibles soluciones a los mismos
La web 2.0 es una forma de entender Internet que, con la ayuda de nuevas herramientas y tecnologías de carácter informático, promueve que la organización y el flujo de información dependan del comportamiento de las personas que acceden a ella, permitiéndose no sólo un acceso mucho más fácil y centralizado a los contenidos, sino su propia participación tanto en la clasificación de los mismos como en su propia construcción, mediante herramientas cada vez más fáciles e intuitivas de usar.
La primera vez que se habló de la web 2.0 fue en 2005 por O’Rilly que realizó un estudio sobre el análisis de las empresas que habían superado la crisis tecnológica del 2001 y sobre cuáles eran sus claves de éxitos denominando a los sitios web supervivientes, web 2.0. Se observó que no sólo se relaciona de forma exclusiva con el uso de determinadas tecnologías, sino que se hace referencia a la aplicación de una determinada actitud en el diseño de servicios web basada en los principios de compartir, reutilizar, mejora continua, consideración del usuario como fuente de información, confianza, aprovechamiento de la inteligencia colectiva entre otros.
La web 2.0 no se debe de concebir como un producto o servicio acabado sino que hay que considerarla, como una plataforma de comunicación y trabajo colectivo, en constante cambio.
El mapa mostrado (elaborado por Markus Angermeier) resume el meme de Web 2.0, con algunos ejemplos de servicios.
Las tecnologías usadas en los sitios 2.0 son: ajax (una combinación de xml y javascript que posibilita crear aplicaciones ejecutables en el cliente), los mashups o aplicaciones hibridas, software social (blogs, foros, wikis) rss etc.
La web1.0 (la tradicional) es una web estática y la web 2.0 es dinámica y es ahí donde radica la diferencia entre las dos. En la web 1.0 los usuarios sólo pueden leer contenidos ofrecidos por su autor o el editor en la web, pero al surgir nuevas tecnologías éste papel estático del usuario ha cambiado por un papel más dinámico, donde él puede elaborar contenidos (wikis), compartirlos( vídeos, fotos, enlaces etc), opinar (blog), etiquetar/ clasificar información, aunque la desventaja es que no es una información filtrada, revisada por expertos, por lo tanto se corre el riesgo de mezclar información científica con la que no la es y se pueden confundir los usuarios, aunque las ventajas de esta web 2.0 compensan en parte este problema.
AJAX es una etiqueta que refiere un repertorio de técnicas basadas en los navegadores para implementar aplicaciones Web en las cuales los elementos y contenido de las páginas son recuperados de manera asincrónica en background, y por la cual el despliegue de la página se actualiza de manera incremental sin necesidad de desplegar la página completa.
Lo nuevo en la evolución actual en cuanto a implementaciones de navegadores y capacidad de procesamiento del hardware es que permite que gran cantidad de código JavaScript se ejecute correcta y consistentemente con robustez y rendimiento aceptables.
Es el asíncrono de JavaScript + XML para un modelo de desarrollo basado en estándares para RIA (Rich Internet Applications). AJAX difiere en tres aspectos de las formas clásicas de aplicaciones Web basadas en páginas. Estos son:
1. una máquina del lado del cliente actúa como intermediario entre la UI y el servidor
2. la máquina del lado del cliente maneja la actividad del usuario en lugar de enviar el requerimiento al servidor.
3. los datos XML son transferidos entre la máquina del lado del cliente y el servidor, permitiendo el refresco de páginas parciales en lugar de páginas completas.
AJAX no es un lenguaje de programación. Es una técnica para crear mejores y más rápidas aplicaciones Web usando sus mismas tecnologías (HTML, CSS, JavaScript y XML). Dado que usa funcionalidad nativa de los navegadores no requiere plug-in. Usa el objeto de los navegadores XMLHttpRequest, que permite hacer requerimientos al servidor sin refresco completo de la página.
Como cualquier otra técnica o tecnología que se emplee en un entorno Web, el uso de AJAX está sujeto a inconvenientes. La experiencia enseña que con el tiempo estos inconvenientes se suplen cuando el mercado apoya una tecnología y ésta se estandariza lo suficiente como para que los distintos navegadores no den problemas con ella, ya sean estos de compatibilidad o de seguridad. AJAX permite realizar ahora cosas que antes no se podían o necesitaban uso de plugins, además de aumentar la interactividad al poder mantener la conexión con el servidor de forma sencilla. Por este motivo la industria se ha volcado mucho últimamente en desarrollar software con AJAX, pero éste es todavía un poco inmaduro.
Problemas de Seguridad.
Cuando se quiere analizar la seguridad de un programa en red se deben tener dos partes claramente diferenciadas: servidor y cliente/s. El análisis de seguridad se debe hacer pensando que el atacante conoce perfectamente todo el funcionamiento del sistema ya que no se puede confiar en que ayude mantenerlo en secreto; sus mismos desarrolladores pueden atacarlo.
Parte del Cliente
En principio todas las aplicaciones Web están sujetas a los mismos problemas de seguridad ya que todas se suelen correr sobre el mismo software del servidor al que le llegan las peticiones de los usuarios “no identificados” ya que nunca se puede asegurar realmente de quien hay al otro lado de la línea, si la aplicación necesita de seguridad deberá ser el servidor el que la proporcione. A nadie se le ocurriría poner la seguridad en el lado cliente ya que equivale a servir en bandeja al cracker todo el control de seguridad.
Problemas Antiguos AJAX
El código Javascript es visible al usuario, que perfectamente puede ser un potencial Hacker, puede buscar la forma de utilizar el código, como está o con las modificaciones oportunas para explotar las debilidades de la aplicación.
• Solución errónea: Encriptarlo, si se ejecuta es porque nuestra máquina es capaz de desencriptarlo con lo cual seguro que es posible la ingeniería inversa.
• Solución correcta: No existe, el código debe ser visible para que se ejecute. El código Javascript puede ser bajado y evaluado en el cliente, si fuera código con malas intenciones el cliente podría hacer poco ante ello.
• Solución 1: Utilizar algún tipo de área de pruebas para el código antes de lanzarlo directamente que lo analice, existen
...