No me opongo para nada al uso de las mismas, si bien como todo desarrollo pueden tener problemas de seguridad, estos son evaluados por profesionales expertos y en caso de descubrirse una vulnerabilidad sabemos que automáticamente estarían corrigiéndola. Sin embargo a lo que me opongo es a la moda muy peligrosa de incluir estas librerías directamente desde la fuente, o lo que es lo mismo sin utilizar una copia local, llamando a la librería correspondiente desde la fuente directa. Esto se suele hacer para poder tener a mano siempre la versión más actualizada, lo cual en principio no es una mala idea.
El problema con esta idea es puede ser más grave el daño que el beneficio que aporta, ya que bastaría con infectar el archivo "hosts" del equipo de la víctima mediante "pharming local" con una dirección que sustituya la dirección en la que se puede obtener el código de la librería de javascript usada en nuestra aplicación y así la victima estaría descargando una copia con código adicional infectado.


Si bien existe una política de seguridad en los navegadores para el control de llamada a funciones y componentes del DOM desde sitios cruzados, es importante recordar que en este caso puede no ser muy útil, ya que lo que esta política evita es el llamar a una función o componentes del DOM desde otro página de otro dominio o sub-dominio, la librería de conexión está en capacidad de enviar cualquier cosa si es llamada desde la misma página.
Si esto último no fuera cierto siempre se podría hacer una llamada con parámetros desde un "tag" de imagen, una llamada javascript o un simple enlace. En HTML5 inclusive se pueden utilizar "websockets" para enviar los datos. Y aunque lográramos por políticas de seguridad que simplemente fuera imposible enviar datos, siempre podríamos generar una redirección no deseada a otra página.
Por tanto la recomendación a seguir para evitar este problema es muy sencilla:
No cargar librerías Javascript, plugins u otro tipo de scripts, desde sitios externos independientes en páginas donde se trate con información delicada. En estos casos es siempre preferible tener copia de dicha librería o plugin en nuestro servidor y cargarlos desde allí.
Hasta la próxima!
No hay comentarios.:
Publicar un comentario