You are on page 1of 3

Actividades

Trabajo: Seguridad en AJAX


Realizacin de un trabajo para recopilar los problemas de seguridad que presenta l
a tecnologa WEB 2.0 AJAX y las posibles soluciones a los mismos.
Extensin mxima de la actividad (10-15 pginas, fuente Georgia 11 e interlineado 1,5)
.
Esta actividad sobre seguridad en APLICACIONES AJAX abarca los problemas de segu
ridad que tienen este tipo de aplicaciones, que caen en la categora denominada RI
CH INTERNET APPLICATIONS y en las posibles soluciones a los mismos. Hay que cons
ultar cuantas fuentes relativas al tema se considere y sintetizar la informacin r
elevante sin limitarse a copiar el contenido de alguna de ellas. Asimismo se val
orar (PARA TODAS LAS ACTIVIDADES):
-CONTENIDOS. Para la realizacin de los trabajos se deben consultar varias fuentes
para despus contrastarlas, sintetizarlas y generar un trabajo y opinin personaliz
ados aportando ejemplos grficos.
-ESTRUCTURA DEL DOCUMENTO. Debe ser planificada previamente y tener un apartado
de conclusiones y de referencias al final.
-PRESENTACIN acorde con la categora del curso.
-EXTENSIN el trabajo tiene lmite de 10-15 pginas aprox.
-REFERENCIAS. Se deben especificar en un apartado al final todas las fuentes con
sultadas, URL,s de INTERNET, papers, artculos o libros especificando todos los da
tos de la publicacin disponibles.
Recalcar la obligatoriedad de la especificacin de las REFERENCIAS consultadas.
Qu es AJAX?
Ajax (Asynchronous Javascript and XML) es una tecnologa que nos permitir realizar
peticiones al servidor sin necesidad de tener que cargar una pgina web entera, ta
n solo el apartado que nos interese. Este tipo de aplicaciones se ejecutan en el
apartado del cliente en un segundo plano y en el navegador.
En la anterior imagen podemos observar como es una arquitectura web clsica siendo
necesaria la cargar de la pgina web en su totalidad en caso de querer cargar un
mnimo apartado de la misma. Por otro lado tenemos la arquitectura AJAX, que reali
zar sincronizaciones asncronas en funcin de las necesidades del momento.
Para entender bien qu es AJAX, debemos entender primero que no es una tecnologa en
s misma, sino un compendio entre 5 ya existentes:
HTML/XHTML y CSS: Diseo o maquetacin de la web. Front-end del cliente para p
resentar la informacin.
DOM o Document Object Model : Muestra e interacta dinmicamente con la inf
ormacin presentada. A travs del DOM, los programas pueden acceder y modificar el c
ontenido, estructura y estilo de los documentos HTML y XML. Es una interfaz de p
rogramacin de aplicaciones para acceder, aadir y cambiar dinmicamente contenido est
ructurado en documentos con lenguajes
XMLhttpRequest : Interfaz empleada para realizar peticiones (de forma asn
crona) HTTP y HTTPs a servidores Web.
XML : XML es una tecnologa sencilla que tiene a su alrededor otras que la
complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores.
Permite la compatibilidad entre sistemas para compartir la informacin de una mane
ra segura, fiable y fcil definiendo la gramtica de lenguajes especficos para estruc
turar documentos. Tambin da soporte a bases de datos, siendo til cuando varias apl
icaciones deben comunicarse entre s o integrar informacin.
JavaScript: Es el nexo de unin entre todas ellas.
AJAX es nativo en los navegadores web y es el nico RIA framework que puede ser e
ncontrado por los diferentes motores de bsqueda.
Las principales ventajas que AJAX nos ofrece son; la optimizacin de recursos y la
alta compatibilidad ya que es soportado por casi todas las plataformas web. Est
o desemboca en una mejor experiencia del usuario ya que los tiempos de espera se
optimizan notablemente. Sin embargo, esta tecnologa tambin ofrece una serie de de
sventajas visibles a primera vista como el incremento del tiempo de dedicacin en

su implementacin debido a su complejidad o el problema del SEO.


Problemas de seguridad en AJAX
Exposicin: AJAX posee la caracterstica de delegar en el cliente cierto gra
do de gestin ya que una porcin del cdigo se ejecuta en l. Esto conlleva a que cierta
lgica de nuestro programa queda expuesta al atacante, con lo que se este podra es
tudiar la forma de explotar esta forma de trabajo para llevar a cabo acciones ma
liciosas.
SQLi o XSS: Debido a la forma de trabajo que tiene AJAX almacenando dato
s en la parte del cliente pueden obtenerse cookies, credenciales y hasta se pued
e realizar un robo de informacin en profundidad.
XML envenenado: El servidor debe validar todos los datos que recibe, ya
que un posible XML mal formado puede causar un problema en el servidor provocand
o una denegacin de servicio.
Cdigo malicioso: Las llamadas que se realizan con AJAX ejecutan en backgr
ound sin ninguna interaccin del usuario, por lo que el usuario no es consciente d
e lo que se est realizando en un sitio concreto, por lo que la web puede aprovech
ar este hecho para realizar un robo de cookies.
XPATH inyectados en SOAP: Esta es una accin similar a una inyeccin SQL. El
lenguaje utilizado es XPATH y el objetivo del ataque son los documentos XML.
DOM y XSS: Puede alterar el contenido de un sitio y modificar la direccin
de dnde los datos o formularios de usuarios son enviados. (Ej. Imagen)
Same Origin Policy: Este es un grave problema a la hora de utilizar AJAX
entre nombres de dominios. Aqu un script obtenido en un origen podra cargar o mod
ificar propiedades del documento desde otro origen no igual al primero. (Ej. Ima
gen)
Validaciones: Algo que hay que tener muy en cuenta son las validaciones
de cliente y no realizadas en la parte del servidor. Este hecho es quiz una de la
s mayores amenazas a las que se enfrenta AJAX y cualquier tecnologa que se encuen
tre en el lado del cliente. Toda peticin debe ser validada en el lado del servido
r, adems de en el cliente.
Soluciones
Sandobox: El cdigo de JavaScript se debe ejecutar mediante el uso de una
sandbox , con lo que todo lo malicioso que se intente ejecutar queda aislado y s
in acceso a los recursos de inters de la mquina atacada.
CORS: Cross-Origin Resource Sharing consiste en no establecer conexiones
con sitios diferentes del nombre de dominio del que se ha obtenido el script de
JavaScript. De este modo se puede proteger de problemas de seguridad.
Accesos: Los ficheros JavaScript que se obtengan desde un sitio en concr
eto no deben poder acceder a propiedades de otro sitio.
Validacin: Todos los campos de entrada han de ser validados adecuadamente
tanto en el lado del cliente como en el del servidor. La idea es que ninguna ac
cin que se valide en el cliente puede ser manipulada, por ejemplo mediante el uso
de un proxy.
Controles de seguridad: Como pueden ser autenticacin, autorizacin, e inclu
so registro de operaciones o logging, siempre en el lado del servidor. De este m
odo se mantiene un seguimiento de qu ha pasado.
Mtodos: Utilizar mtodos POST en vez de mtodos GET para no dejar a plena vis
ta la informacin que se pasa como parmetros.
Filtrados: Los ataques clsicos como SQLi y XSS tambin hay que tenerlos en
cuenta y se han de buscar para que otros no los encuentren, sin olvidar los XSRF,
los cuales podrn ser solventados mediante un filtrado correcto o utilizacin de tok
ens correctamente en el caso del XSRF.
Informacin sensible: Nunca se han de almacenar datos sensibles o confiden
ciales en el lado del cliente, este hecho hara que obtenerlos por un atacante fue
ra algo potencialmente sencillo y crtico.
Cifrado de datos: Utilizacin de mtodos de cifrado para transmitir datos se
nsibles o confidenciales entre el cliente y el servidor es una buena forma de qu

e, aun habindose hecho con nuestra informacin, el atacante no logre dejarnos expue
stos. Tambin podemos usar una VPN.
Negociacin cliente-servidor: La lgica de negocio debe tener el principio d
e mnima exposicin y encontrarse siempre en el lado del servidor de modo que quede
salvaguardada de posibles malos usos.
Peticiones: Toda peticin realizada con AJAX y que acceda a recursos prote
gidos debern encontrarse autenticadas controlando as los accesos.
Por supuesto, todo esto son conceptos que hay que tener siempre presente en el d
esarrollo de software, aplicndolo al desarrollo de software seguro o S-SDLC.
Webgrafa
Manuel Cebrian. (junio 29 2006). Puntos a tener en cuenta cuando uses AJ
AX. 23/03/2015, de http://www.maestrosdelweb.com/ Sitio web: http://www.maestros
delweb.com/puntosajax/
Seguridad en AJAX. (27 ABRIL, 2014). Seguridad en AJAX. 22/03/2015, de E
xpresin Binaria Sitio web: http://www.expresionbinaria.com/seguridad-en-ajax/
Pablo Gonzlez. (jueves, 17 de abril de 2014). Seguridad en AJAX (Parte I)
. 22/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/segur
idad-en-ajax-parte-i.html
Pablo Gonzlez. (viernes, 18 de abril de 2014). Seguridad en AJAX (Parte I
I). 22/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/seg
uridad-en-ajax-parte-ii.html
Pablo Gonzlez. (lunes, 28 de abril de 2014). Seguridad en AJAX (Parte III
). 23/03/2015, de flu-project Sitio web: http://www.flu-project.com/2014/04/segu
ridad-en-ajax-parte-iii.html
Jos Manuel Alarcon. (5 abril 2006 07:49). AJAX (IV): Posibles problemas (
I) - Llamadas fuera de nuestro dominio. 23/03/2015, de JASoft.org Sitio web: htt
p://www.jasoft.org/Blog/post/PermaLinkaspxguid=4632519c-cccf-4c26-aabc-ec83100.a
spx
Csar Krall. (Copyright 2006-2015). Qu es y para qu sirve Ajax? Ventajas e in
convenientes. JavaScript asncrono, XML y JSON. 23/03/2015, de http://www.aprender
aprogramar.com/ Sitio web: http://www.aprenderaprogramar.com/index.php?option=co
m_content&view=article&id=882:ique-es-y-para-que-sirve-ajax-ventajas-e-inconveni
entes-javascript-asincrono-xml-y-json-cu01193e&catid=78:tutorial-basico-programa
dor-web-javascript-desde-&Itemid=206
LibrosWeb.es. ( 2015). Captulo 1. Introduccin a AJAX. 23/03/2015, de http:/
/librosweb.es/ Sitio web: http://librosweb.es/libro/ajax/capitulo_1.html
Axzel Marin (SiCuTDeUx). (16/02/2010). QU ES AJAX Y PARA QUE SIRVE? (PARTE
1). 23/03/2015, de sicutdeux.wordpress.com Sitio web: https://sicutdeux.wordpre
ss.com/2010/02/16/%C2%BFque-es-ajax-y-para-que-sirve-parte-1/
Mariano Dimaggio. (2014/05/22). VENTAJAS Y DESVENTAJAS DE UTILIZAR AJAX.
23/03/2015, de http://www.4rsoluciones.com/ Sitio web: http://www.4rsoluciones.
com/ventajas-y-desventajas-de-utilizar-ajax/