
Cuando construyes una aplicación web que recibe tráfico del mundo entero, inevitablemente vas a recibir visitas de bots. Algunos son inofensivos, pero otros intentarán hacer spam, ataques de fuerza bruta o saturar tu servidor.
Google reCAPTCHA es una excelente primera línea de defensa. En este post te muestro cómo integrarlo en una aplicación de Remix con React.
Las dos piezas necesarias
Para integrar reCAPTCHA necesitas implementar dos partes:
- El cliente (React): Un componente que carga el script de Google y ejecuta la verificación
- El servidor (Remix): Un action que valida el token con la API de Google
Veamos cada una.
🎬 ¿Te está gustando este contenido? Tenemos más tutoriales en video en nuestro canal de YouTube.
El componente Recaptcha
Este componente encapsula toda la lógica del cliente. Lo puedes usar en cualquier formulario:
Uso del componente
Validación en el servidor con createAssessment
En el servidor, necesitas validar el token que recibiste del cliente. Google ofrece dos APIs:
- reCAPTCHA v3 estándar: Más simple, usa
siteverify - reCAPTCHA Enterprise: Más potente, usa
createAssessment
Aquí te muestro la implementación con reCAPTCHA Enterprise usando createAssessment:
El action de Remix
Interpretando el score
reCAPTCHA v3/Enterprise retorna un score entre 0.0 y 1.0:
| Score | Interpretación |
|---|---|
| 0.9 - 1.0 | Muy probablemente humano |
| 0.7 - 0.9 | Probablemente humano |
| 0.5 - 0.7 | Sospechoso |
| 0.3 - 0.5 | Probablemente bot |
| 0.0 - 0.3 | Muy probablemente bot |
Mi recomendación:
- Formularios normales: Acepta score >= 0.5
- Pagos/acciones críticas: Requiere score >= 0.7
- Score bajo pero no bot: Muestra un CAPTCHA tradicional como fallback
Variables de entorno necesarias
Recursos útiles
Abrazo. bliss.
