Protege tus Formularios con IKOMCAPTCHA

Sistema de verificación humana inteligente, intuitivo y sin tracking. La alternativa perfecta que respeta la privacidad de tus usuarios.

Demo en Vivo

99.9%

Detección de Bots

3 seg

Tiempo Promedio

100%

Sin Tracking

0€

Costo de Uso

¿Por qué IKOMCAPTCHA?

Características que Marcan la Diferencia

Tecnología de verificación humana de última generación diseñada para seguridad máxima y experiencia de usuario excepcional

Seguridad Avanzada

Sistema de firma criptográfica HMAC-SHA256, validación de comportamiento humano y detección de honeypot para máxima protección contra bots sofisticados.

Privacidad Total

Sin tracking de usuarios, sin cookies de terceros. Tu privacidad y la de tus usuarios es nuestra prioridad.

Interfaz Intuitiva

Sistema de deslizamiento simple y natural. Completar la verificación toma solo 3 segundos promedio, sin frustraciones ni imágenes borrosas.

Análisis de Comportamiento

Tracking de movimientos del mouse, análisis de timing y detección de patrones para distinguir humanos reales de bots automatizados.

Fácil Integración

Implementación en minutos con solo 3 líneas de código. Compatible con cualquier framework o CMS. Documentación completa en español.

100% Responsive

Optimizado para todos los dispositivos. Funciona perfectamente en móviles, tablets y escritorio con soporte táctil completo.

Comparativa

IKOMCAPTCHA vs Competidores

Descubre por qué IKOMCAPTCHA es la mejor opción para tu sitio web

Característica IKOMCAPTCHA OTROS hCaptcha
Sin Tracking de Usuarios
Sin Cookies de Terceros
Cumple 100% GDPR
Interfaz Intuitiva
Sin Selección de Imágenes
Código Abierto
Gratuito
Soporte en Español
Tiempo Promedio Completado ~3 segundos ~15 segundos ~20 segundos
Documentación

Guía de Implementación

Todo lo que necesitas saber para integrar IKOMCAPTCHA en tu sitio web

🚀 Inicio Rápido

Implementa IKOMCAPTCHA en tu sitio web en menos de 5 minutos. Solo necesitas agregar unas pocas líneas de código.

1. Incluir el Script

HTML
<script src="https://ikomcaptcha.com/icp.js"></script>

2. Agregar Contenedor

HTML
<div id="captcha-container"></div>

3. Inicializar CAPTCHA

JavaScript
IkomsoftCaptcha.init({
    containerId: 'captcha-container',
    callback: function(token) {
        console.log('Token recibido:', token);
        // Enviar token al servidor
    }
});
💡 Consejo: El token generado es válido por 5 minutos y debe ser verificado en tu servidor.

📦 Instalación

Opción 1: CDN (Recomendado)

La forma más rápida de comenzar es usando nuestro CDN:

HTML
<script src="https://ikomcaptcha.com/icp.js"></script>

Opción 2: Descarga Local

También puedes descargar el script y alojarlo en tu servidor:

Bash
wget https://ikomcaptcha.com/icp.js
# Copiar a tu carpeta de scripts
cp icp.js /tu/carpeta/js/
HTML
<script src="/js/icp.js"></script>

💻 Implementación Frontend

Configuración Básica

JavaScript
const captchaInstance = IkomsoftCaptcha.init({
    containerId: 'captcha-container',
    
    // Callback cuando se completa el CAPTCHA
    callback: function(token) {
        document.getElementById('captcha-token').value = token;
        document.getElementById('submit-btn').disabled = false;
    },
    
    // Callback en caso de error
    onError: function(error) {
        console.error('Error:', error);
        document.getElementById('submit-btn').disabled = true;
    },
    
    // Callback cuando expira (60 segundos)
    onExpire: function() {
        console.log('CAPTCHA expirado');
        IkomsoftCaptcha.reset(captchaInstance);
    }
});

Ejemplo Completo de Formulario

HTML
<!DOCTYPE html>
<html>
<head>
    <title>Formulario con IKOMCAPTCHA</title>
    <script src="https://ikomcaptcha.com/icp.js"></script>
</head>
<body>
    <form id="myForm" method="POST" action="/submit.php">
        <input type="text" name="name" placeholder="Nombre" required>
        <input type="email" name="email" placeholder="Email" required>
        
        <!-- Contenedor del CAPTCHA -->
        <div id="captcha-container"></div>
        <input type="hidden" id="captcha-token" name="captcha_token">
        
        <button type="submit" id="submit-btn" disabled>
            Enviar
        </button>
    </form>
    
    <script>
        // Inicializar CAPTCHA
        const captcha = IkomsoftCaptcha.init({
            containerId: 'captcha-container',
            callback: function(token) {
                document.getElementById('captcha-token').value = token;
                document.getElementById('submit-btn').disabled = false;
            },
            onError: function() {
                document.getElementById('submit-btn').disabled = true;
            }
        });
    </script>
</body>
</html>

Resetear CAPTCHA

Puedes resetear el CAPTCHA programáticamente:

JavaScript
// Resetear después de enviar el formulario
IkomsoftCaptcha.reset(captchaInstance);

🔐 Validación en el Servidor (Backend)

⚠️ Importante: SIEMPRE debes verificar el token en tu servidor. La verificación solo del lado del cliente NO es segura.

PHP - Verificación del Token

PHP
<?php
// Configuración
define('CAPTCHA_SECRET_KEY', 'TU_CLAVE_SECRETA_AQUI');
define('CAPTCHA_VERIFY_URL', 'https://www.ikomcaptcha.com/api/verify-token.php');

// Función para verificar el token
function verifyCaptcha($token) {
    $data = array(
        'token' => $token,
        'secret' => CAPTCHA_SECRET_KEY,
        'ip' => $_SERVER['REMOTE_ADDR']
    );
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, CAPTCHA_VERIFY_URL);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    curl_close($ch);
    
    return json_decode($response, true);
}

// Uso en tu formulario
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $token = $_POST['captcha_token'] ?? '';
    
    if (empty($token)) {
        die('Error: CAPTCHA no completado');
    }
    
    $result = verifyCaptcha($token);
    
    if ($result['success']) {
        // ✅ CAPTCHA válido - procesar formulario
        $name = $_POST['name'];
        $email = $_POST['email'];
        
        // Aquí va tu lógica de negocio
        echo 'Formulario enviado exitosamente';
        
    } else {
        // ❌ CAPTCHA inválido
        die('Error: ' . $result['error']);
    }
}
?>

Node.js - Verificación del Token

JavaScript
const axios = require('axios');

const CAPTCHA_SECRET_KEY = 'TU_CLAVE_SECRETA_AQUI';
const CAPTCHA_VERIFY_URL = 'https://www.ikomcaptcha.com/api/verify-token.php';

async function verifyCaptcha(token, ip) {
    try {
        const response = await axios.post(CAPTCHA_VERIFY_URL, {
            token: token,
            secret: CAPTCHA_SECRET_KEY,
            ip: ip
        });
        
        return response.data;
    } catch (error) {
        return { success: false, error: 'Connection error' };
    }
}

// Uso en Express.js
app.post('/submit', async (req, res) => {
    const { captcha_token, name, email } = req.body;
    
    if (!captcha_token) {
        return res.status(400).json({ error: 'CAPTCHA no completado' });
    }
    
    const result = await verifyCaptcha(captcha_token, req.ip);
    
    if (result.success) {
        // ✅ CAPTCHA válido
        // Procesar formulario aquí
        res.json({ message: 'Formulario enviado exitosamente' });
    } else {
        // ❌ CAPTCHA inválido
        res.status(400).json({ error: result.error });
    }
});

Python - Verificación del Token

Python
import requests
import json

CAPTCHA_SECRET_KEY = 'TU_CLAVE_SECRETA_AQUI'
CAPTCHA_VERIFY_URL = 'https://www.ikomcaptcha.com/api/verify-token.php'

def verify_captcha(token, ip):
    data = {
        'token': token,
        'secret': CAPTCHA_SECRET_KEY,
        'ip': ip
    }
    
    try:
        response = requests.post(
            CAPTCHA_VERIFY_URL,
            json=data,
            timeout=10
        )
        return response.json()
    except:
        return {'success': False, 'error': 'Connection error'}

# Uso en Flask
@app.route('/submit', methods=['POST'])
def submit_form():
    token = request.form.get('captcha_token')
    
    if not token:
        return jsonify({'error': 'CAPTCHA no completado'}), 400
    
    result = verify_captcha(token, request.remote_addr)
    
    if result['success']:
        # ✅ CAPTCHA válido
        # Procesar formulario
        return jsonify({'message': 'Formulario enviado'})
    else:
        # ❌ CAPTCHA inválido
        return jsonify({'error': result['error']}), 400

🛡️ Seguridad

Mejores Prácticas

🔒 Recomendaciones de Seguridad:
  • Siempre verifica el token en el servidor
  • Guarda tu clave secreta en variables de entorno
  • Implementa rate limiting en tu servidor
  • Valida todos los campos del formulario
  • Usa HTTPS en producción

Guardar Clave Secreta de Forma Segura

Bash
# En tu archivo .env (NO subir a Git)
CAPTCHA_SECRET_KEY=tu_clave_secreta_aqui
PHP
// En tu código PHP
define('CAPTCHA_SECRET_KEY', getenv('CAPTCHA_SECRET_KEY'));

Características de Seguridad Incluidas

  • Firma Criptográfica: Tokens firmados con HMAC-SHA256
  • Anti-Replay: Cada token solo puede usarse una vez
  • Expiración: Tokens válidos por 5 minutos
  • Validación de IP: El token se vincula a la IP del usuario
  • Análisis de Comportamiento: Detección de patrones de bot
  • Honeypot: Campos ocultos para detectar bots simples

📚 Referencia de API

IkomsoftCaptcha.init(options)

Inicializa una instancia del CAPTCHA.

Parámetros:
JavaScript
{
    containerId: 'string',        // ID del contenedor (requerido)
    callback: function(token),    // Función al completar (requerido)
    onError: function(error),     // Función en caso de error (opcional)
    onExpire: function(),         // Función cuando expira (opcional)
}
Retorna: instanceId - ID de la instancia del CAPTCHA

IkomsoftCaptcha.reset(instanceId)

Resetea una instancia del CAPTCHA.

Parámetros:
  • instanceId - ID retornado por init()

Respuesta del Servidor (verify-token.php)

Éxito:

JSON
{
    "success": true,
    "score": 95.5,
    "response_token": "..."
}

Error:

JSON
{
    "success": false,
    "error": "Invalid token signature"
}

¿Listo para Proteger tu Sitio Web?

Únete a cientos de desarrolladores que ya confían en IKOMCAPTCHA para proteger sus formularios web

Comenzar Ahora - Es Gratis