Video Soft BBS


Video Soft BBS
Menú Principal
Anti Trojans
Antivirus
Hoaxes
Subscripciones
Otro software
Artículos
Links
Sugerencias
Sobre el BBS
Direcciones
Galería
Chat

Controlado desde el 19/10/97 por NedStat

VSAntivirus   
Esta página es un servicio gratuito de Video Soft BBS -
SUBSCRIBASE en nuestras listas de correo.
Es usted nuestro visitante número  desde el 12 de agosto de 1996

JavaScript no es Java
 
VSantivirus No. 861 - Año 7 - Viernes 15 de noviembre de 2002

JavaScript no es Java
http://www.vsantivirus.com/java-javascript.htm

Por Jose Luis Lopez
videosoft@videosoft.net.uy


La mayoría debe saber que JavaScript ha sido el mayor culpable de los recientes agujeros de seguridad en navegadores como Internet Explorer.

Sus posibilidades, van desde borrar archivos, robar contraseñas o ejecutar caballos de Troya en la máquina de un usuario por el simple hecho de abrir una página HTML con dicho código.

El ejemplo más reciente, es el agujero (aún sin solución), que permite la ejecución de archivos en forma remota, con la posibilidad de formatear nuestro disco, enviar correo en forma masiva, etc. (ver "Precaución con grave falla en el Internet Explorer", http://www.vsantivirus.com/09-11-02b.htm).

La solución momentánea, pasa por desactivar el "Active Scripting", o sea la posibilidad de ejecutar scripts como los de JavaScript y ActiveX.

Ante la aparición de otras importantes fallas en el Internet Explorer, relacionadas con el uso de su propia implementación de Java (ver "Diez fallas en la Máquina Virtual Java de Microsoft",  http://www.vsantivirus.com/10vul-java.htm), es interesante tener un poco más claro la relación existente entre Java y JavaScript.

Es muy común confundirlos. Java es un lenguaje orientado a los objetos, desarrollado por Sun. JavaScript es un lenguaje basado en "scripts" creado por Netscape (originalmente llamado LiveScript).

Java pretende ser un lenguaje pequeño en materia de recursos, y fácilmente portable. Se asemeja a C++ y debe ser compilado. La idea es generar un código único, y compilarlo cuando se usa para que funcione en distintas máquinas, sin cambiar el código original. Sus virtudes enseguida fueron muy bien valoradas para emplearse en Internet, ya que justamente la gran red, permite el intercambio de información entre máquinas que pueden ser totalmente diferentes entre si.

Las razones por las que Netscape le cambió el nombre a su LiveScript por el de JavaScript, fueron muy sencillas, aprovecharse de la manía en que Java se estaba convirtiendo en ese momento (1995). Y ahora, aunque Netscape se refiere a él como ECMAScript, y Microsoft lo denomina Jscript, la gente lo sigue llamando JavaScript.

JavaScript agrega capacidades dinámicas al HTML, cosas como verificar la información de los formularios antes de que se transmitan, creación de cuestionarios interactivos, o ejecutar archivos de sonido en respuesta a una acción del usuario; todo esto sin requerir ningún proceso basado en el servidor. Y esto es justamente lo que lo hace vulnerable. El no seguir todas las estrictas reglas de un lenguaje como Java, es lo que convierte a Javascript en algo mucho más sencillo de implementar por usuarios sin demasiados conocimientos. Debido a esto contiene más capacidad para que un programador mal intencionado pueda usarlo para causar daños a un usuario de formas mucho más simples. JavaScript es como un macro de Word y se ejecuta dentro del documento que lo contiene, en este caso un HTML.

Los applets de Java en cambio, son compilados y ejecutados por la Máquina Virtual de Java (Java Virtual Machine), que puede existir dentro del contexto del navegador como en el caso del Internet Explorer, o puede estar completamente separada. Se accede a un applet de Java desde un link de una página HTML, como si fuera un archivo gráfico por ejemplo. La seguridad la provee por lo tanto la Máquina Virtual, que es quien abre y ejecuta el applet. Esto previene el acceso directo al sistema.

El código de JavaScript es incluido dentro de la página de HTML con sus propias etiquetas especiales. JavaScript es ejecutado por el Intérprete de JavaScript dentro del navegador, y en lugar de ejecutarlo estrictamente dentro de su propio ambiente, puede manipularse para invocar una enorme variedad de recursos, haciendo llamadas al sistema operativo, etc. De hecho se usa a menudo como un lanzador de applets de Java dentro de documentos HTML.

Un applet de Java sólo puede comunicar con el servidor original del que fue bajado. Los parámetros de las protecciones para JavaScript son menos definidas, y más propensas a agujeros de seguridad que constantemente son "emparchados".

La mayoría de los últimos agujeros de seguridad, están basados en JavaScript, y el más notorio hoy día, es el mencionado al principio de este artículo.

Y las soluciones no son fáciles, ya que involucra el sentido de JavaScript y su sencillez.

Ya hace un par de años, mencionábamos que tal vez en el futuro se debería optar por cercenar algunas de estas cosas sencillas que hacen a su funcionalidad, para que la seguridad de nuestros navegadores y sistemas operativos, no parezca encontrarse siempre "en la cuerda floja".

Hoy día la situación sigue igual.



(c) Video Soft - http://www.videosoft.net.uy
(c) VSAntivirus - http://www.vsantivirus.com
 

Copyright 1996-2002 Video Soft BBS