En términos prácticos la ley Sinde no sirve para nada, ya
expliqué en
otro post la
forma de meter 400.000 enlaces en un archivo de 2Mb que se puede distribuir fácilmente de
mil formas, incluso por correo electrónico. Por esta y por otras tantas razones
más.
Pero bueno, hoy voy a rizar el rizo. Antes de que me asalten trolls diciéndome que esto
ya lo habían inventado los de
sinl.es, voy a matizar.
Partimos de la suposición que que es ilegal alojar en tu servidor enlaces que apuntan a
webs con contenido protegido por copyright.
Básicamente lo que hacen en sinl.es es esquivar la ley escondiendo los enlaces en un
servicio acortador de links. Por ejemplo este
enlace
http://sinl.es/luitoa15 redirige
a sindecoder.tk, metiendo el texto con los enlaces codificados en base64 como
parte de la url. Pero vamos por muy legal que sea sindecoder, en el servidor
sinl.es hay una base de datos con millones de enlaces. Aunque los codifiques, los
enlaces están ahí, y la comisión Sinde puede cerrar el servidor con todas las de
SU ley. Para colmo el servidor ilegal es el punto es, por lo que pueden anularte el
dominio vía
nic.es. Este sistema (mucho más sencillo del
que voy a proponer) sería efectivo si lo hubieran hecho al revés (poner el ilegal en
el dominio Tokelau). Al menos podrías mudarte de hosting.
Otro inconveniente que le veo a los acortadores es el límite de tamaño en las URLs que
es de 2Kb (en base64 se quedan en 1.5Kb). No lo sé pero supongo que algunos acortadores
limitan más esta cifra. Al caber pocos enlaces tendrías que inventarte otro sistema
para recolectarlos: para entender la recursividad primero hay que entender la
recursividad, aunque aceptamos twitter.
La solución que ofrezco es bastante enrevesada, pero es legal en el sentido de que los
enlaces no existen en el servidor, no están codificados en forma alguna, no pasan por
el servidor vía proxy desde otro sitio, en el servidor NO se procesan los enlaces, es
totalmente ajeno a la existencia de estos.
Me voy a meter en materia, así que, si no quieres que te dé la chapa, baja al final del
todo y encontrarás el enlace que lo demuestra.
Empecemos pues. Tenemos 4 servidores: A, B, C y D. La máquina A es nuestro servidor, totalmente
legal. B es un servidor de imágenes (
imageshack.us). C
es un servidor que actúa como proxy codificando la imagen en base64. D es el servidor
donde se aloja el contenido protegido (megaupload por ejemplo). Los enlaces están
codificados en una
imagen .png que
aloja el servidor B. El servidor C en realidad no haría falta si se pudiesen leer los
datos de la imagen directamente, pero el navegador no lo permite por motivos de seguridad.
Se puede evitar C cambiando una directiva en about:config o haciendo el proxy en A, pero como
no queremos que los enlaces pasen por A, ni tener que tunear el navegador, lo necesitamos.
El server A te ofrece un archivo html con javascript embebido. En el javascript está el
índice con los nombres de las series y las películas, pero sin enlaces. Los enlaces están
codificados en una imagen png (alojada en B), que el javascript decodificará. ¿Cómo
decodifica javascript una imagen? Pues creando un elemento canvas y volcando la imagen
en este canvas, la función getImageData convierte los píxeles del canvas a bytes, y luego
los bytes se convierten en enlaces.
Hay un problema, para leer el contenido de la imagen, éste tiene que estar codificado
en DATA URI (base64). Para ello tenemos a C, que lee la imagen de B y se la sirve a A de
la forma que queremos. La idea (y una mejor explicación para los que sigáis leyendo) la
encontré
aquí.
Metamos a dos actores más. E eres tú y F es tu navegador. F lee de A un archivo html
inocente que no tiene enlaces. Como está en javascript, todo el procesamiento lo hace
F, el cual recibe una imagen procesada de C, el cual a su vez ha recibido la imagen
original (donde están los enlaces) de B. Con todo esto, F se genera él solito una web
con 400.000 enlaces, que los va mostrando a petición de E (que eres tú), y en caso de
que pinches en alguno, te llevará a D (megaupload) para que disfrutes de tu serie favorita.
Bueno ya he acabado, el enlace que voy a poner a continuación es para demostrar que
funciona, en caso de que seas incrédulo: te animo a que te leas el código fuente. Lo
he probado con Firefox y Chrome y sólo funciona en Chrome (te lo tienes que instalar
si quieres ver la prueba funcionando).
Si lo que quieres es un archivo buscador de series más actualizado y que funcione en
todos los navegadores, te recomiendo
éste, descomprimes
el zip y pones el html en tu escritorio (si eres piratilla no creo que lo muevas de ahí).
Para finalizar, he
aquí la prueba que lo demuestra.