Presentamos Cap: una alternativa CAPTCHA de prueba de trabajo, privada, ligera y de código abierto
Cap: una alternativa a los CAPTCHA basada en prueba de trabajo
Descripción del proyecto
Cap es una alternativa a los CAPTCHA ligera, moderna y de código abierto que utiliza una prueba de trabajo basada en SHA-256. Su objetivo es ofrecer una solución rápida, privada y fácil de integrar para verificar la autenticidad de los usuarios, diseñada para reemplazar directamente los sistemas CAPTCHA existentes, priorizando el rendimiento y la experiencia de usuario. Cap está construido con JavaScript y funciona en cualquier entorno de ejecución de JS (Bun, Node.js, Deno). Para entornos que no sean JS, hay disponible una imagen Docker autónoma.
Consta de dos partes principales:
- @cap.js/widget
: Una biblioteca JavaScript para renderizar el CAPTCHA y resolver los retos utilizando Web Workers y WASM.
- @cap.js/server
: Una biblioteca sin dependencias para crear y validar retos en el lado del servidor.
Paquetes y funcionalidades útiles adicionales incluyen:
- @cap.js/solver
: Un solucionador del lado del servidor para interacciones entre máquinas.
- @cap.js/cli
: Una interfaz de línea de comandos para resolver CAPTCHAs, principalmente para pruebas o entornos sin soporte de navegador JavaScript.
- Modo autónomo: Una imagen Docker que proporciona una API REST simple y una interfaz de usuario interactiva para la creación/validación de retos, permitiendo su uso con cualquier lenguaje/framework.
- @cap.js/wasm
: Solucionadores WASM experimentales construidos con Rust.
- Middleware de punto de control: Bibliotecas como @cap.js/checkpoint-hono
, @cap.js/checkpoint-express
y @cap.js/middleware-elysia
para una experiencia similar al punto de control del navegador de Cloudflare.
Instrucciones de uso
Cap se puede integrar utilizando sus bibliotecas JavaScript (@cap.js/widget
y @cap.js/server
) en entornos de ejecución de JavaScript. Para entornos que no sean JavaScript, la imagen Docker autónoma proporciona una API REST para la interacción. Hay guías de inicio rápido detalladas y documentación completa disponibles a través de los enlaces del proyecto.
Características clave
- Ligero:
@cap.js/widget
tiene solo 12kb minificados y comprimidos con brotli, lo que lo hace 250 veces más pequeño que hCaptcha. - Privado: Utiliza prueba de trabajo, eliminando la necesidad de seguimiento, huellas digitales o recolección de datos.
- Prueba de Trabajo (PoW): Emplea PoW SHA-256, lo que facilita la resolución para humanos (realizando un pequeño cálculo) y la dificulta para bots.
- Totalmente personalizable: Autohospedable, lo que permite personalizar tanto el backend como el frontend, o mediante variables CSS.
- Modo autónomo: Imagen Docker disponible para usar con cualquier lenguaje de programación o framework a través de una API REST simple.
- Modo invisible: Puede ejecutarse de forma invisible en segundo plano utilizando una API JavaScript.
- Modo flotante: El CAPTCHA permanece oculto hasta que se necesita explícitamente.
- Completamente de código abierto: Bajo licencia Apache License 2.0.
- Sin dependencias: Construido con JavaScript sin dependencias externas para sus componentes principales.
- Compatibilidad multiplataforma: Funciona en Bun, Node.js, Deno.
- Cumple con GDPR/CCPA: Su diseño centrado en la privacidad cumple naturalmente con estas regulaciones.
Usuarios objetivo
Cap es ideal para: - Desarrolladores y organizaciones que buscan una alternativa a CAPTCHA centrada en la privacidad y el rendimiento. - Sitios web y aplicaciones que necesitan proteger las APIs de los bots. - Plataformas en línea que buscan prevenir el spam en los formularios. - Servicios que requieren bloquear intentos de inicio de sesión automatizados. - Proyectos que necesitan protegerse contra el abuso de niveles gratuitos.
Enlaces del proyecto
- Repositorio GitHub: https://github.com/tiagorangel1/cap
- Documentación/Sitio web: https://capjs.js.org/
Escenarios de aplicación
- Protección de API: Proteger las API REST de solicitudes automatizadas y ataques de bots.
- Prevención de spam en formularios: Implementar CAPTCHA en formularios de contacto, registro y secciones de comentarios para evitar envíos de spam.
- Seguridad de inicio de sesión: Añadir una capa de protección contra ataques de fuerza bruta e intentos de inicio de sesión automatizados.
- Prevención del abuso de niveles gratuitos: Mitigar el uso indebido de servicios gratuitos o recursos limitados asegurando la interacción humana legítima.
- Puntos de control tipo Cloudflare: Usar el middleware proporcionado para crear experiencias de punto de control del navegador para una seguridad mejorada.