Mejorando django-simple-captcha

Esta semana estamos siendo objeto de un ataque de spam (basado en comentarios) en thechurchofhorrors.com, que aparte de lo absurdo de su objetivo es un auténtico incordio.

TheChurchofHorrors es un Magazine Cultural que yo mismo desarrollé hace un tiempo que sigo manteniendo y mejorando, el código fuente completo lo podemos encontrar en https://github.com/dugo/The-Church-of-Horrors

Al parecer el posible atacante ha sido capaz de romper la protección captcha de los comentarios, basada en django simple captcha versión 0.3.0

Recuerdo que se acordó la publicación de comentarios libre para fomentar la participación y la libertad de expresión, de hecho en las implementaciones iniciales mi idea era aprobar los comentarios, algo que molestó a mis compañeros.

Para solucionar el problema he implementado las mejoras expuestas en http://hacktimes.com/reforzando_django_simple_captcha/ pero con algunas modificaciones propias.

Concretamente he modificado el rango de caracteres para que varíe entre 5 y 8, ya que escribir un captcha de 12 caracteres es bastante incómodo.

Y he modificado para que el color de las letras se desplace un poco aleatoriamente con respecto el color del fondo, haciendo más difícil la lectura del captcha, concremante he añadido el siguiente código:

    for i in range(0,3):
        aux[i] = dec2hex((hex2dec(aux[i])+ random.randint(32,64) )%256)
    color = "#" + aux[0] + aux[1] + aux[2]
 
    settings.CAPTCHA_FOREGROUND_COLOR = color

En la vista captcha_image. Haciendo uso de este par de funciones para mayor comodidad:

def dec2hex(n):
    """return the hexadecimal string representation of integer n"""
    return "%02X" % n
def hex2dec(s):
    """return the integer value of a hexadecimal string s"""
    return int(s, 16)

Esperemos que con esto dé el problema como solucionado.

Un gran número de parejas jóvenes que se enfrentan a varios problemas de salud, tales personas pueden comprar medicamentos en línea recta sin orden. Antibióticos de penicilina muy populares que combaten las bacterias. Estos remedios no tratan una infección viral por ejemplo un resfriado común. Vamos a hablar de numerosas drogas existe. Kamagra es un remedio usado para tratar de varias quejas. ¿Qué sabes sobre “Comprar Kamagra Oral Jelly“? Actualmente muchos hombres buscan la frase exacta “comprar kamagra 100mg” en Internet inalámbrico. (Leer más “Kamagra Oral Jelly“). Debido a que algunos de los problemas sexuales son emergencias médicas, es bueno conocer los síntomas. Ciertas personas que usan este medicamento generalmente no tienen efectos secundarios graves Kamagra. El farmacéutico necesita resolver qué dosis es la mejor en su caso. Si el medicamento se usa según sea necesario, es poco probable que esté en un horario de dosificación.

  • Los enlaces estan cerrados
  • Comentarios (2)
  1. Aunque no lo sepas te sigo leyendo, que siempre me gusta estar al tanto de todo 🙂

    • dugo
    • 23 agosto 2012 8:00pm

    Y yo también a ti Richard! Lo poco que escribimos xD

    1saludete!

Los comentarios estan cerrados.