Author Archive for Heavy Boy

18
Dic
08

Vulnerabilidad XSS en siereslegalereslegal.com

El sitio web de la nueva campaña del Ministerio de Cultura es vulnerable a uno de los ataques mas comunes que puede sufrir una página web. Este fallo de seguridad conlleva el riesgo de infección de miles de ordenadores que puedan visitar la página web

El ataque en cuestión, XSS (Cross Site Scripting), consiste en “escribir” código en una página web (a través del enlace que sigue el usuario), código que no estaba originalmente. De esta forma, se modifica el contenido de la web, y se puede poner en peligro la seguridad de un equipo.

Esta vulnerabilidad representa una puerta abierta a cualquier tipo de ataque que pueda realizarse desde una web hacia un equipo. Un ejemplo sencillo, provocar que la página fuera redirigida a otra con contenido peligroso.

Un ejemplo: Esta dirección redirge la página de siereslegalereslegal a la definición de XSS en la Wikipedia

http://www.siereslegalereslegal.com/testimoniales.php?page=1%22%3E%3Cscript%3Elocation.href = 'http://es.wikipedia.org/wiki/XSS';%3C/script%3E

Personalmente, me parece indignante que se utilice dinero público para defender el negocio de empresas privadas y/o un impuesto abusivo. Lo peor es que encima esta web suponga un peligro para los visitantes de la misma

16
Dic
08

Mestizaje lingüístico

El archipiélago de las Islas Canarias es uno de los puntos mas importante de la historia mundial. Ahí es nada. Desde Canarias partió Cristobal Colón antes de “descubrir” América, como tantos otros que luego siguieron el mismo rumbo. Establecieron las primeras rutas de comerio transatlántico, y convirtieron a Canarias en el punto de entrada a Europa de las mercancías provenientes de las Américas y el sur de África. Durante siglos, cientos de productos desconocidos en Europa pasaron por los puertos canarios.

El ir y venir de marineros, emigrantes e inmigrantes dotaron a las islas de una riqueza cultural y lingüistica de la que todavía quedan rastros hoy en día.

Entre los productos traídos de las Americas, la patata es uno de los mas importantes. En Canarias, existe una gran variedad de cultivos de patatas (papas), gracias a su clima tropical y su suelo volcánico.

Hace siglos, cuando el comercio de la patata proveniente de las Americas estaba en auge, los sacos estaban marcados en inglés. Por ejemplo, había papas “King Edward” y “Out Of Date”. Hoy en día, todavía persisten en Canarias las variedades de papa “chinegua” o “quinegua”, y “autodate”.

El tráfico marítimo propició el nacimiento de un nuevo tipo de comerciante: el “cambuyonero”. Un cambuyonero era una persona que con una pequeña barca acudía a la llegada de los barcos a comprar cosas a los marineros, a mejor precio que el que le haría el comerciante. También vendía cosas que los marineros codiciaban, como tabaco, hachís, prensa, licores… ¿Como te pediría un marinero inglés que subieras a bordo para comprarle cosas? “Come buy on”, y ya tenemos otra palabra que ha nacido del mestizaje lingüistico.

Como curiosidad, una canción dedicada a estos simpáticos comerciantes:

Arístides Moreno – El Cambuyón

Un fragmento de la letra, en la que se pueden escuchar unas cuantas palabras que también se han quedado hasta nuestros días en dialecto canario. (change = cambiar, bisnoso = negociante, de business, negocio)

‘Cucha tornillo, yo te hago un change
medio chanchullo, medio chantaje
Vendo chamarras, vendo chancletas
vendo cachuchas, vendo chaquetas
que yo soy cambuyonero
del trapiche, un bisnoso
me echo al mar con la chalana,
trafico con marroco

Referencias: Palabras Autóctonas de las Islas Canarias

16
Dic
08

Citar notas en el nótame (menéame)

El nótame es una sección de menéame donde puedes escribir pequeñas notas públicas. En tus notas, puedes referirte (o citar) a la última nota de otro usuario escribiendo una arroba (@) seguida del nombre del usuario al que te refieres.
En mi opinión, debería ser mas fácil, no me gusta tener que escribir el nombre de usuario, o tener que copiar/pegar, por eso he escrito este pequeño script.

Puedes ver como funciona en http://www.youtube.com/watch?v=C2ktZAoBtpk

Para utilizarlo, necesitas usar el navegador web FireFox , y tener instalado el plugin GreaseMonkey para FireFox.
El script está publicado en http://userscripts.org/scripts/show/35186 , donde puedes instalarlo y ver el código fuente

También puedes ver el código fuente aquí

// ==UserScript==
// @name           Nótame Hacks
// @namespace      http://meneame.net/notame
// @description    Añade funciones extra en las notas
// @include        http://meneame.net/notame*
// ==/UserScript==

// Creamos el nodo con el script
var js = document.createElement('script');
js.setAttribute('id', 'notame_hacks');
js.setAttribute('type', 'text/javascript');

// ==UserScript==
// @name          Nótame Hacks
// @namespace     http://meneame.net/notame
// @description   Mejoras en la interfaz gráfica
// @include       http://meneame.net/notame/*
// ==/UserScript==

    js.text += "\nvar esperar = 1000;";
    js.text += "\nvar refresco = 100;";
    js.text += "\nvar cancelarBusqueda = false;";
    js.text += "\nvar it;";
    js.text += "\nvar invocarTextarea = function(usuario) {";
    js.text += "\n    get_votes('post_edit.php','edit_comment','addpost',0,0);";
    js.text += "\n    it = setInterval('comprobarTextarea(\\'' + usuario + '\\')', refresco);";
    js.text += "\n    setTimeout(function() { cancelarBusqueda = true; }, esperar);";
    js.text += "\n}";
    js.text += "\nvar comprobarTextarea = function(usuario) {";
    js.text += "\ntexto = document.getElementById('post');";
    js.text += "\n    if(texto) {";
    js.text += "\n        clearInterval(it);";
    js.text += "\n        citar(usuario);";
    js.text += "\n    } else if(cancelarBusqueda) {";
    js.text += "\n        clearInterval(it);";
    js.text += "\n    }";
    js.text += "\n}";
    js.text += "\nvar citando, texto;";
    js.text += "\nvar citar = function(usuario) {";
    js.text += "\n    texto = document.getElementById('post');";
    js.text += "\n    if(!citando || (!texto)) {";
    js.text += "\n        if(!texto) {";
    js.text += "\ncitando = false;";
    js.text += "\n            invocarTextarea(usuario);";
    js.text += "\n\n        } else {";
    js.text += "\ncitando = true;";
    js.text += "\n            texto.value = '@' + usuario + ' ';";
    js.text += "\n        }";
    js.text += "\n    } else {";
    js.text += "\n        texto.value += ' @' + usuario + ' ';";
    js.text += "\n    }";
    js.text += "\n}";
    js.text += "\nvar notas = document.getElementsByTagName('ol')[1].childNodes;";
    js.text += "\nvar nota, url, usuario;";
    js.text += "\nfor(i = 0; i < notas.length; i++) {";
    js.text += "\n    nota = notas[i];";
    js.text += "\n    if(nota.nodeType == 3) continue;";
    js.text += "\n    url = nota.childNodes[1].childNodes[1].getElementsByTagName('a')[0].href;";
    js.text += "\n    usuario = url.substring(url.lastIndexOf('/')+1);";
    js.text += "\n    obj = nota.childNodes[1].childNodes[0].innerHTML += '&nbsp;&nbsp;&nbsp;<a href=\"javascript:citar(\\'' + usuario + '\\')\">Citar</a>';";
    js.text += "\n}";
}
// Añadimos el nodo al <head>
document.getElementsByTagName('head')[0].appendChild(js);