Categoría Proyectos
DEBILIDAD A FUERZA BRUTA
Hace un par de semanas desde Menéame (erlang y compañía) me hicieron comprender que las versiones de Animal Captcha hasta la 1.3 son débiles frente a un ataque de fuerza bruta.
Es decir, a diferencia de los captchas alfanuméricos, Animal Captcha por su naturaleza tiene un numero reducido de "respuestas posibles". Tantas como animales. Hasta el momento 30 animales.
Esto significa que creando un bot de fuerza bruta que haga peticiones de forma automática, de cada 30 peticiones acertará una, de media. Esto es una debilidad que en algunos casos merecerá la pena explotar (no en todos).
LA SOLUCIÓN
Tras un momento de desconcierto, se pudo pensar que se había tumbado el concepto de Animal Captcha. Pero he desarrollado una batería de soluciones que mitigan el problema hasta su mínima expresión.
El problema de la fuerza bruta se ha resuelto con los siguientes cambios:
- En cada "intento" se elimina la variable de sesión. Esto significa que para hacer un intento válido haya que hacer 2 peticiones obligatoriamente: una a la imagen del animal (el captcha) y otro al script comprobador.
- Se permite configurar el numero de animales mostrados. Por defecto 2. Es flexible, cambiando un parámetro se puede cambiar a 1 animal o a 8, dependiendo del "industrial strength" que se necesite. Por ejemplo en Blogs Teoriza he configurado 1 solo animal, hasta que surja algún problema.
¿Qué hemos conseguido? Pues multiplicar exponencialmente el numero de respuestas posibles, mitigando drásticamente la eficacia de un ataque por fuerza bruta (el único ataque con eficacia demostrada hasta ahora).
Cálculos teniendo en cuenta que hay un repertorio de 30 animales (estoy preparando la próxima versión 2.0 que se ampliará a objetos).
- Versión antigua (hasta 1.3)
30 respuestas posibles = 30 peticiones por acierto.
- Animal Captcha 1.4
Mostrando 2 animales: (30^2)*2 = 1.800 peticiones por acierto.
Mostrando 3: (30^3)*2 = 54.000 peticiones por acierto.
Mostrando 4: (30^4)*2 = 1.620.000 peticiones por acierto.
Como se puede ver, se ha aumentado drásticamente el numero de peticiones con el mismo numero de imágenes. El numero de imágenes será elevado al menos a 60, incluyendo objetos y animales, en la próxima versión 2.0.
- Animal Captcha 2.0 (versión futura incluyendo objetos)
Mostrando 2: (60^2)*2 = 7.200 peticiones por acierto.
Mostrando 3: (60^3)*2 = 432.000 peticiones por acierto.
Mostrando 4: (60^4)*2 = 25.920.000 peticiones por acierto.
Con esto intento mostrar que el aumento de la seguridad frente a fuerza bruta es exponencial.
CONCLUSIÓN
Con esta versión 1.4 doy por resuelto el ataque de fuerza bruta simple (salvo que me corrijan, claro). Y por lo tanto en mi opinión es "invulnerable" hasta que se demuestre lo contrario.
Me temo que ahora el caballo de batalla de Animal Captcha es el ataque por identificación de animales analizando patrones del repertorio de imágenes (que es publico y abierto, aunque cada webmaster puede hacerse el suyo particular).
Aunque en este aspecto es extremadamente difícil de hacer, ya que desde la versión 1.2 se fusiona una imagen de fondo aleatoria, con transparencia aleatoria y orientación aleatoria. Todos los bytes y pixeles cambian aleatoriamente. Cada imagen es única.
Además continua activa la opción de añadir polígonos aleatorios (desactivada por defecto ya que sobra seguridad en este aspecto).
CONCLUSIÓN BREVE
Animal Captcha 1.4 es invulnerable, hasta que se demuestre lo contrario (como de costumbre estaré muy agradecido de que alguien lo demuestre).
Español | Inglés
Animal Captcha
DEMO ONLINE
[Español e Inglés]
Introducción:
Animal Captcha es un pequeño programa en lenguaje PHP, orientado para su uso en páginas web, que permite adjuntar a un formulario una imagen aleatoria de un animal que cualquier humano conoce, y sin embargo un robot es incapaz de identificar.
Ventajas:
- Seguridad: esta es la razón principal, en Internet hay desarrollos que consiguen resolver algunos captchas de códigos alfanuméricos, con creciente éxito. Sin embargo, ojalá pudiese una máquina identificar a un animal! Es imposible teóricamente.
- Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
- Rapidez: los usuarios ahorran tiempo, ya que se tarda mucho menos en identificar y escribir un animal que introducir un código aleatorio.
- Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.
- Multi-lenguaje: permite responder en varios idiomas, incluso varios nombres para un mismo animal (ejemplo: halcón y águila son equivalentes).
Descargar:
Publicado bajo licencia Creative Commons, siendo esta página la fuente original. Cedo al interés común todos los derechos de utilización y modificación, como mejor se considere. El único derecho que quiero preservar es el de autoría y citación.
Versiones y cambios: (changelog):
- 2.0 - Futura versión...
Ampliaré las imágenes tambien a objetos. Aumentando el repertorio al menos a 60 entre animales y objetos.
- 1.4 - 2009/11 - Invulnerable
Caduca la sesion en cada intento obligando a pedir el captcha. Configuracion opcional del numero de animales por prueba, esto aumenta exponencialmente el numero de respuestas posibles migitando drásticamente la eficacia del ataque por fuerza bruta.
- 1.3 - 2009/10 - Débil a fuerza bruta por erlang
Permite añadir varias imágenes para un mismo animal añadiendo _2.jpg en la imagen. La imagen de fondo se orienta incorrectamente para mitigar la confusión con la imagen principal que es la corecta. Desactivado por defecto los polígonos y giros aleatorios ya que no hace falta tanta seguridad. Mejorada la calidad de la imagen. Refresca otro animal al hacer clic en la imagen.
- 1.2 - 2008/12 - Débil a fuerza bruta por erlang
Avance importante en la aleatorización de imágenes mediante una tecnica de fusión de dos imagenes transparentes aleatorias. Corrección de pequeños bugs. Optimización mejorada, genera imágenes más rápido.
- 1.1 - 2008/06 - Vulnerado por movzx
Avance en la aleatorización para dificultar la obtención de patrones que identifiquen la foto original del animal. Invulnerable al test de bits y test de histograma.
- 1.0 - 2008/04 - Vulnerado por NachE
Versión inicial. Vulnerable a los test de bits y test de histogramas.
(Invulnerable quiere decir que es seguro y hasta el momento nadie ha logrado crackeado, ánimo hackers!)
Implementación:
Animal Captcha está compuesto de 2 archivos PHP y 1 carpeta con imágenes de animales.
- animal-captcha.php - Devuelve una imagen aleatoria de un animal, y guarda en una sesión PHP el nombre del animal para comprobarlo posteriormente.
- animal-captcha-check.php - Define esta función PHP animal_captcha_check() que devuelve true si se ha acertado y false si es errónea, respecto a la sesión previamente creada al imprimir la imagen captcha.
- Imágenes: las fotos deben estar en formato .jpg, medir 120px y representar un animal común, fácil de identificar (de nivel de preescolar). El nombre está formado por una serie de palabras sin espacios, una palabra por intento, separadas por guiones "-". Todas las estas palabras son las respuestas correctas. Ejemplo, cerdo-gorrino-pig.jpg Admite las respuestas: cerdo, gorrino o pig. Cada imagen ocupa 4kb tan solo. Está optimizado su consumo al mínimo, listo para usarse en sitios web con alto tráfico.
De esta forma se puede internacionalizar fácilmente o se pueden solventar animales que pueden ser nombrados de varias formas.
Cada imagen es difuminada aleatoriamente, de forma que cada imagen presentada es única.
Problemas conocidos:
- Si el lector no conoce alguno de los idiomas del captcha, no podrá resolverlo.
0
GONZO
20-11-2009
Prácticamente como excusa para escribir un buen post (que ya toca). He estado un par de horas mejorando y avanzando el código PHP de Animal Captcha.
Animal Captcha 1.2 es la ultima versión de mi pequeño proyecto de un sistema captcha distinto a los demás, con interesantes ventajas. Su singularidad consiste en que para verificar si un usuario de internet es humano o no, utiliza imágenes de animales (aunque se puede ampliar a: objetos, deportes, aparatos, etc).
Para entender cómo funciona Animal Captcha prueba el TEST ONLINE!
Con esta ultima versión he avanzado un par de pasos por delante en cuanto a seguridad, ya que el sistema utiliza una técnica para fusionar dos imágenes aleatorias resultando una imagen muy aleatoria. Con esto se consigue dificultar mucho que se identifiquen patrones automáticamente. Ver Test de Histograma.
También he corregido detalles y bugs poco importantes. Además de comentarios más explícitos para facilitar la modificación. Por lo demás las ventajas esenciales son las misma.
Español | Inglés
Animal Captcha
DEMO ONLINE
[Español e Inglés]
Introducción:
Animal Captcha es un pequeño programa en lenguaje PHP, orientado para su uso en páginas web, que permite adjuntar a un formulario una imagen aleatoria de un animal que cualquier humano conoce, y sin embargo un robot es incapaz de identificar.
Ventajas:
- Seguridad: esta es la razón principal, en Internet hay desarrollos que consiguen resolver algunos captchas de códigos alfanuméricos, con creciente éxito. Sin embargo, ojalá pudiese una máquina identificar a un animal! Es imposible teóricamente.
- Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
- Rapidez: los usuarios ahorran tiempo, ya que se tarda mucho menos en identificar y escribir un animal que introducir un código aleatorio.
- Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.
- Multi-lenguaje: permite responder en varios idiomas, incluso varios nombres para un mismo animal (ejemplo: halcón y águila son equivalentes).
Descargar:
Publicado bajo licencia Creative Commons, siendo esta página la fuente original. Cedo al interés común todos los derechos de utilización y modificación, como mejor se considere. El único derecho que quiero preservar es el de autoría y citación.
Versiones y cambios: (changelog):
- 2.0 - Futura versión...
Ampliaré las imágenes tambien a objetos. Aumentando el repertorio al menos a 60 entre animales y objetos.
- 1.4 - 2009/11 - Invulnerable
Caduca la sesion en cada intento obligando a pedir el captcha. Configuracion opcional del numero de animales por prueba, esto aumenta exponencialmente el numero de respuestas posibles migitando drásticamente la eficacia del ataque por fuerza bruta.
- 1.3 - 2009/10 - Débil a fuerza bruta por erlang
Permite añadir varias imágenes para un mismo animal añadiendo _2.jpg en la imagen. La imagen de fondo se orienta incorrectamente para mitigar la confusión con la imagen principal que es la corecta. Desactivado por defecto los polígonos y giros aleatorios ya que no hace falta tanta seguridad. Mejorada la calidad de la imagen. Refresca otro animal al hacer clic en la imagen.
- 1.2 - 2008/12 - Débil a fuerza bruta por erlang
Avance importante en la aleatorización de imágenes mediante una tecnica de fusión de dos imagenes transparentes aleatorias. Corrección de pequeños bugs. Optimización mejorada, genera imágenes más rápido.
- 1.1 - 2008/06 - Vulnerado por movzx
Avance en la aleatorización para dificultar la obtención de patrones que identifiquen la foto original del animal. Invulnerable al test de bits y test de histograma.
- 1.0 - 2008/04 - Vulnerado por NachE
Versión inicial. Vulnerable a los test de bits y test de histogramas.
(Invulnerable quiere decir que es seguro y hasta el momento nadie ha logrado crackeado, ánimo hackers!)
Implementación:
Animal Captcha está compuesto de 2 archivos PHP y 1 carpeta con imágenes de animales.
- animal-captcha.php - Devuelve una imagen aleatoria de un animal, y guarda en una sesión PHP el nombre del animal para comprobarlo posteriormente.
- animal-captcha-check.php - Define esta función PHP animal_captcha_check() que devuelve true si se ha acertado y false si es errónea, respecto a la sesión previamente creada al imprimir la imagen captcha.
- Imágenes: las fotos deben estar en formato .jpg, medir 120px y representar un animal común, fácil de identificar (de nivel de preescolar). El nombre está formado por una serie de palabras sin espacios, una palabra por intento, separadas por guiones "-". Todas las estas palabras son las respuestas correctas. Ejemplo, cerdo-gorrino-pig.jpg Admite las respuestas: cerdo, gorrino o pig. Cada imagen ocupa 4kb tan solo. Está optimizado su consumo al mínimo, listo para usarse en sitios web con alto tráfico.
De esta forma se puede internacionalizar fácilmente o se pueden solventar animales que pueden ser nombrados de varias formas.
Cada imagen es difuminada aleatoriamente, de forma que cada imagen presentada es única.
Problemas conocidos:
- Si el lector no conoce alguno de los idiomas del captcha, no podrá resolverlo.
0
GONZO
19-12-2008
Español | English
He aquí la versión pública del captcha gráfico que desarrollé para el formulario de registro de Blogs Teoriza.
Cuando me enfrenté al gran desarrollo del sistema de usuarios quise destacar de los demás formularios. Ante todo quería que fuese usable, sencillo y al grano. En definitiva minimalista, fiel a mi tendencia evidente.
Por supuesto el formulario de registro debe tener un control captcha, es decir, un obstáculo que solo es capaz de sortear un humano. Solo así puede estar protegido un formulario en Internet. Y aquí entra en juego este programa que hoy tengo el placer hacer público, muy fácil de implementar.
Español | Inglés
Animal Captcha
DEMO ONLINE
[Español e Inglés]
Introducción:
Animal Captcha es un pequeño programa en lenguaje PHP, orientado para su uso en páginas web, que permite adjuntar a un formulario una imagen aleatoria de un animal que cualquier humano conoce, y sin embargo un robot es incapaz de identificar.
Ventajas:
- Seguridad: esta es la razón principal, en Internet hay desarrollos que consiguen resolver algunos captchas de códigos alfanuméricos, con creciente éxito. Sin embargo, ojalá pudiese una máquina identificar a un animal! Es imposible teóricamente.
- Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
- Rapidez: los usuarios ahorran tiempo, ya que se tarda mucho menos en identificar y escribir un animal que introducir un código aleatorio.
- Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.
- Multi-lenguaje: permite responder en varios idiomas, incluso varios nombres para un mismo animal (ejemplo: halcón y águila son equivalentes).
Descargar:
Publicado bajo licencia Creative Commons, siendo esta página la fuente original. Cedo al interés común todos los derechos de utilización y modificación, como mejor se considere. El único derecho que quiero preservar es el de autoría y citación.
Versiones y cambios: (changelog):
- 2.0 - Futura versión...
Ampliaré las imágenes tambien a objetos. Aumentando el repertorio al menos a 60 entre animales y objetos.
- 1.4 - 2009/11 - Invulnerable
Caduca la sesion en cada intento obligando a pedir el captcha. Configuracion opcional del numero de animales por prueba, esto aumenta exponencialmente el numero de respuestas posibles migitando drásticamente la eficacia del ataque por fuerza bruta.
- 1.3 - 2009/10 - Débil a fuerza bruta por erlang
Permite añadir varias imágenes para un mismo animal añadiendo _2.jpg en la imagen. La imagen de fondo se orienta incorrectamente para mitigar la confusión con la imagen principal que es la corecta. Desactivado por defecto los polígonos y giros aleatorios ya que no hace falta tanta seguridad. Mejorada la calidad de la imagen. Refresca otro animal al hacer clic en la imagen.
- 1.2 - 2008/12 - Débil a fuerza bruta por erlang
Avance importante en la aleatorización de imágenes mediante una tecnica de fusión de dos imagenes transparentes aleatorias. Corrección de pequeños bugs. Optimización mejorada, genera imágenes más rápido.
- 1.1 - 2008/06 - Vulnerado por movzx
Avance en la aleatorización para dificultar la obtención de patrones que identifiquen la foto original del animal. Invulnerable al test de bits y test de histograma.
- 1.0 - 2008/04 - Vulnerado por NachE
Versión inicial. Vulnerable a los test de bits y test de histogramas.
(Invulnerable quiere decir que es seguro y hasta el momento nadie ha logrado crackeado, ánimo hackers!)
Implementación:
Animal Captcha está compuesto de 2 archivos PHP y 1 carpeta con imágenes de animales.
- animal-captcha.php - Devuelve una imagen aleatoria de un animal, y guarda en una sesión PHP el nombre del animal para comprobarlo posteriormente.
- animal-captcha-check.php - Define esta función PHP animal_captcha_check() que devuelve true si se ha acertado y false si es errónea, respecto a la sesión previamente creada al imprimir la imagen captcha.
- Imágenes: las fotos deben estar en formato .jpg, medir 120px y representar un animal común, fácil de identificar (de nivel de preescolar). El nombre está formado por una serie de palabras sin espacios, una palabra por intento, separadas por guiones "-". Todas las estas palabras son las respuestas correctas. Ejemplo, cerdo-gorrino-pig.jpg Admite las respuestas: cerdo, gorrino o pig. Cada imagen ocupa 4kb tan solo. Está optimizado su consumo al mínimo, listo para usarse en sitios web con alto tráfico.
De esta forma se puede internacionalizar fácilmente o se pueden solventar animales que pueden ser nombrados de varias formas.
Cada imagen es difuminada aleatoriamente, de forma que cada imagen presentada es única.
Problemas conocidos:
- Si el lector no conoce alguno de los idiomas del captcha, no podrá resolverlo.
76
GONZO
30-04-2008
Español | Inglés
Animal Captcha
Demo Online
[Español e Inglés]
Introducción:
Animal Captcha es un pequeño programa en lenguaje PHP, orientado para su uso en páginas web, que permite adjuntar a un formulario una imagen aleatoria de un animal que cualquier humano conoce, y sin embargo un robot es incapaz de identificar.
Ventajas:
- Seguridad: esta es la razón principal, en Internet hay desarrollos que consiguen resolver algunos captchas de códigos alfanuméricos, con creciente éxito. Sin embargo, ojalá pudiese una máquina identificar a un animal! Es imposible teóricamente.
- Belleza: es más agradable ver una foto de un animal que un código alfanumérico.
- Rapidez: los usuarios ahorran tiempo, ya que se tarda mucho menos en identificar y escribir un animal que introducir un código aleatorio.
- Efectividad: los usuarios aciertan con más probabilidad en comparación con los últimos captchas seguros.
- Multi-lenguaje: permite responder en varios idiomas, incluso varios nombres para un mismo animal (ejemplo: halcón y águila son equivalentes).
Descargar:
Publicado bajo licencia Creative Commons, siendo esta página la fuente original. Cedo al interés común todos los derechos de utilización y modificación, como mejor se considere. El único derecho que quiero preservar es el de autoría y citación.
Versiones y cambios: (changelog):
- 2.0 - Futura versión...
Ampliaré las imágenes tambien a objetos. Aumentando el repertorio al menos a 60 entre animales y objetos.
- 1.4 - 2009/11 - Invulnerable
Caduca la sesion en cada intento obligando a pedir el captcha. Configuracion opcional del numero de animales por prueba, esto aumenta exponencialmente el numero de respuestas posibles migitando drásticamente la eficacia del ataque por fuerza bruta.
- 1.3 - 2009/10 - Débil a fuerza bruta por erlang
Permite añadir varias imágenes para un mismo animal añadiendo _2.jpg en la imagen. La imagen de fondo se orienta incorrectamente para mitigar la confusión con la imagen principal que es la corecta. Desactivado por defecto los polígonos y giros aleatorios ya que no hace falta tanta seguridad. Mejorada la calidad de la imagen. Refresca otro animal al hacer clic en la imagen.
- 1.2 - 2008/12 - Débil a fuerza bruta por erlang
Avance importante en la aleatorización de imágenes mediante una tecnica de fusión de dos imagenes transparentes aleatorias. Corrección de pequeños bugs. Optimización mejorada, genera imágenes más rápido.
- 1.1 - 2008/06 - Vulnerado por movzx
Avance en la aleatorización para dificultar la obtención de patrones que identifiquen la foto original del animal. Invulnerable al test de bits y test de histograma.
- 1.0 - 2008/04 - Vulnerado por NachE
Versión inicial. Vulnerable a los test de bits y test de histogramas.
(Invulnerable quiere decir que es seguro y hasta el momento nadie ha logrado crackeado, ánimo hackers!)
Implementación:
Animal Captcha está compuesto de 2 archivos PHP y 1 carpeta con imágenes de animales.
- animal-captcha.php - Devuelve una imagen aleatoria de un animal, y guarda en una sesión PHP el nombre del animal para comprobarlo posteriormente.
- animal-captcha-check.php - Define esta función PHP animal_captcha_check() que devuelve true si se ha acertado y false si es errónea, respecto a la sesión previamente creada al imprimir la imagen captcha.
- Imágenes: las fotos deben estar en formato .jpg, medir 120px y representar un animal común, fácil de identificar (de nivel de preescolar). El nombre está formado por una serie de palabras sin espacios, una palabra por intento, separadas por guiones '-'. Todas las estas palabras son las respuestas correctas. Ejemplo, cerdo-gorrino-pig.jpg Admite las respuestas: cerdo, gorrino o pig. Cada imagen ocupa 4kb tan solo. Está optimizado su consumo al mínimo, listo para usarse en sitios web con alto tráfico.
De esta forma se puede internacionalizar fácilmente o se pueden solventar animales que pueden ser nombrados de varias formas.
Cada imagen es difuminada aleatoriamente, de forma que cada imagen presentada es única.
Problemas conocidos:
- Si el lector no conoce alguno de los idiomas del captcha, no podrá resolverlo.
6
GONZO
06-10-2009
Me han llegado unas cuantas invitaciones a Google Wave de las 100.000 que han repartido hace unos dias, del mismo modo que sucedió con Gmail, Google otorga cierta prioridad a clientes de Adwords/Adsense (o quizá es por antiguedad).
En realidad no se llaman invitaciones, si no "nominaciones" que viene a ser algo parecido pero de forma que Google pueda controlar su expansion.
Aun así me sobran unas cuantas cuentas para "nominar".
Para repartirlas voy a pedir un pequeño requisito que me ayudará a poner en marcha mi proyecto Blogs Teoriza IA.
Blogs Teoriza IA es un motor de inteligencia artificial en fase Beta que estoy desarrollando y del que hablaré próximamente. Su objetivo es establecer vínculos de "gustos" y "sabores" de entre todos los artículos que tenemos en Blogs Teoriza.
Es una ardua tarea porque son 9.000 artículos muy variados, y ahora estoy en fase de recopilación de muestras y calibración del algoritmo.
Por ello reclamo vuestra ayuda :)
Pasos para recibir la nominación/invitación de Google Wave:
- Entrar en Blogs Teoriza IA.
- Pulsar en Comenzar.
- Realizar al menos 10 pruebas A/B.
- Por ultimo dejar un comentario en este artículo indicando la hora exacta en la que realizaste el test.
- Y eso es todo!
(Realizar 10 pruebas A/B se tardan 2 minutos y no requiere ningun registro. Es casi simbólico y lo agradeceré de verdad.)
Si te has despistado y aún no has enviado el formulario para solicitar Google Wave echa un vistazo, porque puede aumentar las posibilidades de ser aceptado.
Por cierto, he de decir que Google Wave tiene un gran potencial tanto para mejorar el mail que conocemos, como para defraudarnos. No prometo nada, de momento Google Wave es un entorno bien hecho, sofisticado, pero aún en desarrollo.
56
GONZO
14-10-2009
El punto débil de una red IRC es que hoy en dia conectar a ellas es trivial. El problema viene cuando se conectan usuarios masivamente con programas automáticos para atacar la red, propagar virus o hacer campañas de spam.
Con la evolución de internet los problemas han ido evolucionando y hoy en dia es casi imposible controlar las conexiones por IP ya hay miles de máquinas infectadas por troyanos o que dan servicios que pueden ser utilizados publicamente de forma descontrolada. La solución que propongo es una implementación de los conocidos sistemas de validación por imagenes o capcha que ya abundan por toda la red.
Consisten en mostrar en los formularios una imagen con un numero, este ha de ser visualizado e introducido en un campo, el numero esta desfigurado de tal forma que sea muy difuso para que lo entienda un programa OCR y natural para un humano. La idea es la misma pero en IRC, es decir dibujando los numeros en ASCII de la forma mas aleatoria y complicada posible pero siempre siendo entendible por cualquier humano.
Las formas de aplicar el sistema capcha son variadas, pero la más inovadora que se me ocurre es hacer validar on connect a todos los usuarios sin registrar. De esta forma para conectar a la red tendria que validar o registrar el nick (más faciles de gestionar) limpiando la red de ataques, virus y spamers. El resultado es algo así:
Hola, si eres humano teclea este numero por favor. ############################# ############################# ############################# ############################# ############################# ############################# #############################
He liberado el código de este programa aquí.
41
GONZO
18-03-2005
Tras meses de intenso desarrollo, ya está en marcha el nuevo sistema de Blogs Teoriza, nombre en clave BT.

Hasta ahora teniamos un sistema basado en multiples Wordpress aderezados y unidos con una serie de plugins y modificaciones propias.
Desde hace unos dias ya está en marcha un nuevo sistema que hemos incubado. Desarrollo 100% propio, hecho a medida y en continua fase Beta (en desarrollo).
Por el momento las novedades son mayormente internas, pero algunas se pueden apreciar.
- Mejor diseño, dentro de la simplicidad que nos caracteriza.
- Menor tiempo de carga, optimizado al máximo (280ms en cargar DOM según GWT).
- Paginación de comentarios AJAX, más amigable y eficaz.
- Animal Captcha custodiando los comentarios.
- MegaRSS, un RSS completo de Blogs Teoriza aunque también puedes recibir los nuevos artículos por blog.
- Validación W3C en HTML, XML, RSS y CSS (con algunas excepciones como bordes radius).
- Ausencia de anuncios para usuarios registrados.
Sin embargo, internamente, los cambios son mucho mayores. Desde la base de datos hasta el sistema de edición, todo ha sido renovado y está funcionando de forma excelente.
El desarrollo no ha hecho más que comenzar. Disponemos de la plataforma ideal, preparada para añadir novedosas funciones que anunciarémos en los próximos días.
2
GONZO
03-10-2009
Prólogo:
He dedicado algo más de un año a un proyecto llamado VirtualPOL (o POL a secas).
Podría considerarse un año sabático de programación, porque la viabilidad de este proyecto como negocio siempre ha sido una incógnita sin resolver. De hecho el retorno ha sido... ninguno.
Sin embargo algo hace que merezca la pena con creces. El ser un proyecto especial.
Introducción:
VirtualPOL es especial porque es un desafío, una revolución en la forma de auto-gestionar una comunidad de Internet. Mediante la democracia.
Defino VirtualPOL como una plataforma de auto-gestión democrática.
- Plataforma: porque es un sistema web flexible. Pretende permitir cuantas más configuraciones, mejor. Actualmente dispone de Chat, Foro, notas, Wiki básico, mapa, economía, votaciones, elecciones, cargos, exámenes...
- Auto-gestión: esto da para varios post, pero resumiendo. VirtualPOL permite a un grupo de personas auto-gestionarse a sí mismas formando una comunidad. Todo el control de configuración queda en sus manos de forma solida y organizada, no de cualquier manera.
- Democrática: VirtualPOL es justo. La única comunidad de Internet que trata a todos sus usuarios de igual a igual. No hay administrador. Los privilegios se ganan periódicamente en las urnas (hay elecciones cada 2 semanas).

Resumiendo. VirtualPOL es una completa democracia en Internet, pero es tan real como las personas que lo componen.
El Desarrollo:
Todo este sistema no nace de la nada, hace falta alguien que lo desarrolle.
Aunque esto parezca una obviedad, es necesario recalcarlo, pues desde los inicios ha habido controversia con este asunto. Y es normal, cuando se proclama que VirtualPOL no tiene admins y se descubre que alguien es el desarrollador algunos sienten contradicción, pero no es más que la realidad.
Pues bien, yo he sido el Desarrollador Fundador, y nada más que eso. Procuré no interferir solo desarrollar, con mayor y menor acierto.
Pero VirtualPOL necesitaba otra evolución. La utopía de la auto-gestión no iba a completarse hasta que desapareciese hasta el ultimo atisbo de privilegio no democrático.
La liberación como Software Libre:
El 6 de Octubre del 2009 liberé el código completo de VirtualPOL, lo subí a un servidor SVN y di los accesos necesarios al pueblo.
Desde ese momento, mis funciones como Desarrollador terminaron. De hecho mi estatus cambió a Ciudadano, como todos los demás.
Aunque pasase desapercibido, en mi opinión se ha alcanzado un hito en Internet. La primera comunidad de usuarios que auto-gestionan y auto-desarrollan su propia comunidad. De forma ordenada y sólida. Gracias a los principios democráticos y al núcleo del sistema VirtualPOL, pero sobre todo... gracias a ellos.
El futuro de VirtualPOL está en las mejores manos posibles, sus propios usuarios. Ellos determinarán el camino a seguir, no solo en la auto-gestión, elecciones y cargos. Si no, ahora también, en el desarrollo web.
La hazaña:
He aquí la hazaña perpetrada por un puñado de usuarios de Internet, que sin conocerse de nada y sin obtener nada a cambio han logrado, gracias a su empeño, lo que muchos creían una utopía. La primera Comunidad de Internet Auto-gestionada democráticamente.
POL:
VULCAN:
Hispania: 
Estos son los valientes (en orden de antiguedad):
PabLo1, InNaT, drosan, Mia, ksogui, selvatgi, Carlos_Crespo, Rsvcap, JAPdeRivera, slimedition, Naaram, Tommy, Gioser, ErCarlos, al00, oskarone, more99, Sanchez, Corocotta, Zokaar, Carliues, Anto, zorion, superfilo, orxona, JordiMasdeu, djbauti, Sacul, dukis, fran, 11m11, Jazunzu, born, fermuned, frandi, dannnyql, shinchandmc, almaguer, Wilhelm, persona, POL, bradduk, arquitecto, San_Ipolitas, Artemis, elanciano74, iluvatar, pepebustos, aechira, kevinkuja, oportunista, ccortesi, bandida, peregrinov, yolovi, Fray, Mixalberto, criogenio, Iris, Tomate, viki, pedrojo, teoriapoetika, Alexsc_91, Chavez, len98, alsirio, Algien12345678, kimico, Chronos, Perdiz, Cucuta, mivida, Johnny_Palillo, Juaquin, majo, y_adios, Biba, b_neruca, osvaldocangas, Eyeshield21, sfb, Hayter, xabio, Nick, osmiglesias, Taud, WarMaster, sofista, security_bot, Juan_Carlos, santi_ago_m, davs, rojiblanko, Vasili, alpha__60, Dani_iii, Pedro_Jose, Keith, Aeldim, Yaguemadrid, Jambi, scipion, obama, Bakarinho, pais5555, acoevil, mortiprogramad, Baldor, Lonchex, ibeccaz, soyi, juliankapolio, Amarbon, HanzCordoba, Ramirez, Master, Solenno, rita, Utopo, Campeador, ivan, nixs, ruben12a...
Sin olvidar los que ya no estan, pero contribuyeron.
2
GONZO
25-10-2009
He terminado la recopilación de los resultados que se desprenden de la encuesta ¿Cuantos euros pagarías? que inicié hace unos días.
Podeis ver aquí el resultado detallado. Se han encuestado a 77 usuarios de Internet hasta este momento, aunque lo he dejado abierto, por si alguien más quiere dar su opinión (ya que lo he programado, así se aprovecha más).
Sobre los resultados destaco lo siguiente (obviamente mi interpretación es subjetiva, que cada cual extraiga sus conclusiones de los datos):
- Más del 90% pagaría por una pelicula de calidad descargada por Internet (hubiendo podido elegir 0 Euros, gratis).
- Las películas en cartelera se venderían muy bien a 3 euros, las contemporáneas a 2 euros.
- Sobre las series de televisión más del 80% está de acuerdo en pagar por capítulos.
- Las serias podrían venderse bien a 1 euro, ya que la media es 0.8 euros.
- En el sector de la música hay un notable aumento del "todo gratis" del 55%, excepto si la canción es de un grupo favorito entonces el 80% si pagaría.
- Las canciones se podrían vender bien a 0.5 euros.
0
GONZO
08-07-2009
Actualización 2008: Estamos desarrollando de nuevo POL 3.0 vía web, entra aquí: http://www.virtualpol.com
Abril, 2004. Uno de tantos días por internet, un tal Cheme llega hasta mí para preguntarme si tenía información sobre los mensajes globals; necesitaba saber datos técnicos de impacto de visitas, consecuencias y demás temas, y como he preparado varios para el Certamen del canal Literatura le informé gustosamente sobre todo lo que me preguntó.
Me contó que el hispano iba a promover su iniciativa, un Pueblo Virtual. Me quedé un rato pensando a lo que podía referirse con "Pueblo Virtual". Me imaginé un montón de cosas muy interesantes, le dije que era una gran idea aún sin conocer de qué iba el tema.
La idea consiste en crear un sistema político y social tan complejo (relativamente) como la vida misma. Para ello disponen de su web oficial VirtuaLPoL.com (dominio actualmente caducado) que incluye desde la Constitución aprobada por el parlamento, periódicos, código penal y muchas cosas más...
Me encantó tanto la idea que propuse hacer un Bot para el canal. Era lo que le faltaba al Pueblo, un sistema automatizado y en tiempo real con el que conseguir información. Consiste en un programa que conectado al IRC ofrece una serie de información y hace determinadas acciones interactuando con comandos de texto. Me decidí a hacerlo, programando en scripting de mIRC, el cual a estas alturas domino perfectamente, (pocas cosas puedo decir tan seguro) y actualmente el programa ya tiene 1058 lineas de código y sistemas de cargos, dinero, cuentas bancarias, votaciones, partidos y más sistemas que contaré más adelante...
En principio el bot es de mi propiedad, aunque es para los miembros de la Junta, de la que soy miembro. Esta Junta está formada por los creadores del Pueblo y nos encargamos de su mantenimiento pero sin interferir de ningún modo con el mundo. Por seguridad me reservo de publicar íntegras las 1060 lineas de código del VirtuaLPoL, al menos de momento. Pero aprovecharé mi flamante WebLog para publicar fragmentos peliagudos, como por ejemplo el código encargado de contar cada voto o el sistema de bases de datos o incluso algún día lo publicaré completamente.
La primera decisión antes de empezar a programar el VirtuaLPoL era decidir el lenguaje y la plataforma. Las dos opciones que teniamos era una conbinación de los lenguajes PHP y MySQL y alojado en un hosting web. Las ventajas era muchas y los resultados muy buenos pero mi falta de conocimientos del lenguaje y la dificultad de implementar lenguaje web PHP al protocolo de redes de chat IRC nos hizo elegir la otra posibilidad, scripting de mIRC mantenido por alguien de la Junta.
VirtuaLPoL necesita un sistema de bases de datos en las que almacenar la información de cada ciudadano, las cuentas bancarias, partidos políticos y demás. En scripting de mIRC no existe ningún sistema para ello, en cambio me tuve que inventar una forma de guardar organizadamente toda la informacion. Lo conseguí creando varios archivos de texto Ciudadanos.ini, Partidos.ini, etc... En cada archivo cada línea representa una fila y en cada fila hay campos separados por el carácter ":". Luego, se sacan o ingresan los campos a base de bucles haciendo búsquedas y demás temas complejos de programación, pero así funciona basicamente. De esta forma está resuelto el primer reto del bot VirtuaLPoL.
Como excepción he decidido publicar el fragmento del código que se encarga de validar y guardar el voto de las votaciones. El comando es VOTAR elección. Debo advertir que el fragmento es complejo y hay que dar por hecho que antes de llegar ahí el bot hace las comprobaciones necesarias certificando el nick como ciudadano de pol y dando a la variable %línea el número de línea que tiene ese nick en la base de datos. El código lo encontraras ampliando este texto pulsando en "Leer mas...".
Suerte a los curiosos! Podéis preguntarme lo que os apetezca comentándolo en este artículo. Un saludo a todos. Próximamente, más.
; Comando VOTAR eleccion
if ($1 == votar) {
; Si hay alguna eleccion
if ($2 != $null) {
; Si el campo de votacion no vale 1, 1 significa que ya se ha votado
if ($gettok($read -l $+ %linea ciudadanos.ini,7,58) != 1) {
; Comienza el bucle que busca la eleccion entre las elecciones de la votacion actual
set %s 0
:s.re
inc %s 1
if ($gettok(%elecciones, %s ,32) == $2) {
; Si existe esa eleccion
set %eleccion. $+ %s $gettok(%elecciones, %s ,32) $calc($gettok(%eleccion,2,32) + 1)
inc %num.votaciones 1
; Guarda log.
write -l $+ $calc($lines(votoslog.ini) +1) votoslog.ini $fulldate --- $address($nick,0) --- $nick vota a $2
; Te marca con un 1 como ya votado
write -l $+ %linea ciudadanos.ini $gettok($read -l $+ %linea ciudadanos.ini,1-6,58) $+ :1: $+ $gettok($read -l $+ %linea ciudadanos.ini,8-10,58) $+ :
; Envia confirmacion correcta de voto
.timerVOT 1 1 msg $nick 2,0 Has votado a $2 $+ . Gracias
goto final
}
; Si hace el bucle mas veces del numero de votos que hay
if (%num.elecciones == %s) {
; La eleccion obviamente no existe
.timerCBB 1 1 msg $nick 2,0 La eleccion no existe.
goto final
}
; Semilla que genera el bucle
goto s.re
}
; Cuando tu valor es 1 osea ya has votado
.timerWER 1 1 msg $nick 2,0Ya has votado una vez :)
; Fin
goto final
}
}
7
GONZO
03-06-2004
◄ Página anterior