Burdjia

Categoría Mantenimiento web, 13 entrada(s)

Feed Rss, Atom

Cómo hacer un sistema CAPTCHA propio

Mis dos webs tienen sendos formularios con los cuales cualquiera puede enviarme un mensaje.  El funcionamiento es muy sencillo:  cuando el servidor recibe el mensaje, comprueba que contiene todos los datos y que hay un correo correctamente indicado, y acto seguido me envía un mensaje con todo.  Pero claro, fue poner en marcha estos formularios y empecé a recibir SPAM.  Bueno, inicialmente recibí varios intentos de juankeo (estoy seguro de haber escrito algo sobre dar las gracias a los piratas turcos por poner a prueba la web, pero ahora no lo encuentro), el SPAM tardó un poquito en llegar, pero llegó.

La solución de añadir un CAPTCHA la barajé desde el principio, pero no me apetecía tener que meter una biblioteca de terceros ya que podía complicar las cosas.  No uso un framework al uso ni ninguna biblioteca extra, así que tendría que instalarlo y configurarlo y hacer pruebas y… paso.

Pero hace cosa de un mes hice un trámite para la TSS y me encontré con un sistema a priori muy simple pero ingenioso.  La página te presenta una lista de palabras y tienes que escribir en un campo aquella que pertenece a una categoría concreta.  Esto me recordó, también, a la pregunta de seguridad de la wiki de Free Pascal, la cual pregunta por el resultado de ejecutar una instrucción Pascal.  Así que me decidí, finalmente, a programarlo.

Cómo funciona

Primero, tenemos una tabla con dos campos:  Palabras y Categorías.  Cada palabra tiene una única categoría y no debe haber ambigüedades, lo cual limita un poco el número de palabras pero facilita las cosas luego.

Cuando se genera el formulario, se selecciona una palabra de forma aleatoriamente, que será la respuesta.  Luego se seleccionan otras tres que pertenezcan a una categoría distinta a la seleccionada.  A continuación creo un código hash combinando la palabra de respuesta con la fecha POSIX para tenerla con referencia y almaceno la palabra de respuesta junto con el hash y la fecha.  Finalmente se genera el formulario mostrando todas las palabras, desordenadas, y la pregunta, con el hash en un campo oculto.

Cuando se recibe el formulario, se eliminan del almacén todas las respuestas viejas para que no se acumulen y se comprueba si la respuesta enviada es correcta.  Si no lo es, se genera otro hash diferente.

Podéis probarlo vosotros mismos.

El resultado

Sé que el sistema no es perfecto, y seguramente que algún bot sería capaz de romperlo con facilidad, sin embargo desde que está activo he dejado de recibir SPAM.  ¿Por cuánto tiempo?  Pues no lo sé.

De todas formas me parece bastante absurdo que me envíen SPAM cuando es más que evidente que tiene un retorno del 0%.  Incluso cuando lo recibía, no lo leía, porque era fácilmente identificable: en el asunto se limitaban a poner una cadena de caracteres aleatoria.

En conclusión, ha sido muy fácil quitarse esta molestia de encima, así que si tienes este problema de SPAM no quites el formulario, símplemente añade un CAPTCHA, aunque sea simple como el mío, y asunto arreglado.

Etiquetas: Seguridad

Categorías: Artículos, Mantenimiento web, Programación, Web

Vuelta al ruedo

Ha pasado ya mucho tiempo desde la última vez que escribí en esta bitácora.  Muchas cosas han pasado desde entonces, precisamente las que hicieron que desactivara esta bitácora y dejara empantanada la web.  Y con la tontería han pasado dos años, ya.

Hace unos meses cambié de trabajo a algo que no tiene nada que ver con la programación:  Ahora soy editor de cómics, lo cual no es tan fácil y divertido como pueda parecer (bueno, lo cierto es que sí puede ser bastante divertido) pero me deja tiempo para hacer cosas.  Cosas como, por ejemplo, hacier limpieza de mi presencia en la web.  La verdad es que tenía demasiadas cuentas en demasiados sitios.  Aún me quedan cosas que limpiar y eliminar, pero ya me he deshecho de un montón de porquería.  Incluso he actualizado la página inicial de Burdjia.  Y es que, aunque haya dejado la programación como profesional, he decidido mantener mis viejos proyectos.  Es más, al hacer esta limpieza (que no se limita a lo virtual, por cierto) estoy viéndome más liberado y más capaz de continuar trabajando en ellos, incluso en aquellos que nunca he llegado a publicar y que tengo escondidos en viejos CD y discos duros.

En fin, que queda re-inaugurada esta bitácora.  Como siempre, no habrá perioricidad ni tema concreto, al menos por ahora.

Categorías: General, Mantenimiento web

Descarga de archivos de nuevo disponible

Como dije en el anterior artículo, había un problema con la descarga de archivos.  El problema ya está solucionado, así que ya puede descargarse cualquier paquete.  He tardado en arreglarlo ya que he estado muy ocupado por la inauguración de El Saloncito del Cómic, café-biblioteca adjunto que hemos abierto mi amigo y colega Iván Sarnago y yo.

Por otro lado, desde hace una semana esta web está siendo atacada por un par de juankers de medio pelo, que están intentando colar enlaces.  Quiero agradecerles sus altruístas esfuerzos, ya que me han permitido comprobar que Ágora es suficientemente duro como para lidiar con ellos.  Y es que por muchas pruebas que se hagan siempre queda la duda de que haya algún agujero por ahí.  Eso sí, quisiera pedirles que trasladen sus esfuerzos a los comentarios de la bitácora, ya que la Página de contacto está sobradamente comprobada mientras que los comentarios de Gesbit podrían tener alguna debilidad que se me haya pasado y querría estar seguro.

Muchas gracias.

Etiquetas: Errores

Categorías: Mantenimiento web

Problemas con las descargas

Al parecer hay un problema con la descarga de paquetes.  Ahora mismo no puedo arreglarlo, pero me pondré a ello en cuanto pueda.

Recordad que podéis usar el formulario de la página de contacto para hacerme llegar cualquier consulta o aviso.

Disculpad los problemas que ha podido causar.

Etiquetas: Errores

Categorías: Mantenimiento web

Cambio de imagen y otras actualizaciones

La mudanza, per sé, terminó, pero no significa que hayan terminado los cambios.  Como habréis notado, ha cambiado el diseño de la web.  Difícil no darse cuenta cuando el verde ha cambiado en azul, ¿verdad?  Esto se ha hecho porque ahora Burdjia forma parte de la empresa que Iván Sarnago y un servidor estamos montando y llevando adelante.  También se ve mejor en móviles, pero este cambio ha sido más para evitar la penalización de Google que porque se viera mal.

Para los más curiosos decir que está usando la última versión de Gesbit.  No la última publicada, sino la que está en el SVN.  De esta forma sirve de cobaya de los últimos cambios.  También se usa la última versión de Ágora, y de una cosa llamada Gesweb, un conjunto de programas PHP que he ido reuniendo según hacía webs y que quizá publique algún día.

Pero esto es un trabajo sin fin, y no será lo último que haga.  No sólo actualizar Gesbit (la versión 2.1 está a la vuelta de la esquina, espero), sino que hay que seguir repasando algunos contenidos, por lo que no os sorprendáis.

Etiquetas: Diseño, Empresa

Categorías: Ágora, Gesbit, Mantenimiento web