2025/01/08 | AI
with openai

Buscar

Protege tu sitio web con Django reCAPTCHA

Descripción de la imagen

En el mundo digital, donde las interacciones en línea son el corazón de muchos negocios y proyectos, proteger los formularios de tu sitio web contra bots y spam no es solo una buena práctica, sino una necesidad. Aquí es donde Django reCAPTCHA entra en acción, ofreciendo una solución poderosa para garantizar que solo usuarios legítimos puedan interactuar con tu plataforma.

Implementar reCAPTCHA en tus formularios no solo fortalece la seguridad de tu sitio, sino que también mejora la experiencia del usuario al evitar molestias como el envío de mensajes no deseados o intentos de explotación automatizada. Este artículo te guiará paso a paso en la instalación y configuración de Django reCAPTCHA, explorando sus ventajas, como la integración sencilla con Django y la flexibilidad de sus opciones, desde casillas "No soy un robot" hasta soluciones invisibles.

Por otro lado, ignorar la implementación de medidas como reCAPTCHA puede exponer tu sitio a riesgos significativos: formularios inundados por bots, consumo innecesario de recursos y, en el peor de los casos, la posibilidad de vulnerabilidades explotadas. Prevenir estos escenarios es mucho más sencillo de lo que parece, y con Django reCAPTCHA, podrás hacerlo de manera efectiva y sin comprometer la usabilidad de tu sitio.

Acompáñanos en este recorrido donde descubrirás cómo instalar, configurar y aprovechar al máximo esta herramienta esencial, llevando la seguridad de tu proyecto Django al siguiente nivel.

 

Instala el módulo:

pip install django-recaptcha

 

Añadimos el módulo instalado a INSTALLED_APPS (Recuerda que al importar debemos utilizar "import django_recaptcha" y no "import captcha"):

INSTALLED_APPS = [
    ...
    'django_recaptcha',
    ...
]

 

Crear un templates un archivo components.yaml (no tengo claro que sea necesario crear esto de components.yaml está por confirmar y hacer pruebas)

/templates/components.yaml

 

Debe contener el siguiente código:

components:
  - name: my_component
    path: components/my_component.html

 

No hay que importar "captcha" como en este ejemplo:

from captcha.fields import ReCaptchaField
from captcha.widgets import ReCaptchaV2Checkbox

 

Ahora hay que importar de esta manera con "django_recaptcha" en las nuevas versiones:

from django_recaptcha.fields import ReCaptchaField
from django_recaptcha.widgets import ReCaptchaV2Checkbox

 

Al crear form creamos de la siguiente manera:

from django_recaptcha.fields import ReCaptchaField
from django_recaptcha.widgets import ReCaptchaV2Checkbox

class ContactForm(forms.Form):
    ...
    captcha = ReCaptchaField(widget=ReCaptchaV2Checkbox)
    ...

 

Creamos en google recaptcha la cuenta para obtener las dos contraseñas, y las creamos para nuestro dominio, como para el localhost y el 127.0.0.1. Tras la puesta en producción tenemos que retirar estos dos últimos y dejar sólo el dominio.

 

Se crean las dos claves que necesitamos:

En settings.py añade esta linea junto con las claves que Google Recaptcha nos ha asignado:

RECAPTCHA_TESTING = True
RECAPTCHA_PUBLIC_KEY = '...' #Aquí debe ir la clave para los usuarios que Google Recaptcha ha asignado en la configuración
RECAPTCHA_PRIVATE_KEY = '...' #Aquí debe ir la clave privada que Google Recaptcha asignado en la configuración

Ya debemos poder visualizar el campo django_recaptcha:

 

 

 

 

 

Comentarios