0
Captcha en Login v1.0
Mejora de seguridad para Risus Nova 2.0 — PHPost
Mejora de seguridad para Risus Nova 2.0 — PHPost
Captura
[img]Registrate o inicia tu sesión para ver este contenido[/img]
Añade el captcha de Cloudflare Turnstile al formulario de login, el mismo que ya tiene el registro. Evita ataques de fuerza bruta automatizados y bots que intenten acceder a cuentas.
🛡️ Características
- Usa el mismo Cloudflare Turnstile ya configurado en el registro
- Sin instalador ni base de datos
- Solo 2 cambios en 2 archivos
- Si no hay clave configurada el captcha se omite — no rompe nada
- Compatible con el mod de Protección de Login y 2FA
📋 Requisitos
- Risus Nova 2.0 instalado y funcionando
- Cloudflare Turnstile configurado (clave pública y secreta en los ajustes del admin)
🛠️ Instalación
Paso 1 — Añadir el widget en head_menu.tpl
Abre themes/default/templates/sections/head_menu.tpl y busca:
Código: ( Seleccionar Todo )
<input type="submit" title="Entrar" value="Entrar" style="width:198px; margin-top:5px;" class="mBtn btnOk">Cámbialo por:
Código: ( Seleccionar Todo )
<div class="cf-turnstile" data-sitekey="{$tsConfig.pkey}" data-size="compact" style="margin:8px 0;"></div>
<input type="submit" title="Entrar" value="Entrar" style="width:198px; margin-top:5px;" class="mBtn btnOk">Paso 2 — Añadir el script de Turnstile en main_header.tpl
Abre themes/default/templates/sections/main_header.tpl y añade antes de </head>:
Código: ( Seleccionar Todo )
<script src="Registrate o inicia tu sesión para ver este contenido" async defer></script>Paso 3 — Verificar el captcha en ajax.login.php
Abre inc/php/ajax/ajax.login.php y busca:
Código: ( Seleccionar Todo )
if(empty($user) or empty($pass)) {
echo '0: Faltan datos';
} else {Cámbialo por:
Código: ( Seleccionar Todo )
if(empty($user) or empty($pass)) {
echo '0: Faltan datos';
} else {
// ── Verificar Turnstile ──
$captcha = $_POST['cf-turnstile-response'] ?? '';
if (!empty($tsCore->settings['pkey']) && !empty($tsCore->settings['skey'])) {
$opts = ['http' => ['method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => http_build_query(['secret' => $tsCore->settings['skey'], 'response' => $captcha, 'remoteip' => $tsCore->getIP()])]];
$res = json_decode(@file_get_contents('Registrate o inicia tu sesión para ver este contenido false, stream_context_create($opts)), true);
if (empty($res['success'])) { echo '0: Verifica que no eres un robot.'; break; }
}
// ────────────────────────Paso 4 — Borrar la caché
Borra el contenido de la carpeta /cache/ del sitio.
🗑️ Desinstalar
Restaura las líneas originales en head_menu.tpl y ajax.login.php.
¿Tienes dudas o encuentras algún problema? Déjalo en los comentarios.


Facebook
Twitter
Reddit
Digg
del.icio.us
Tumblr
Pinterest
Blogger
Fark
LinkedIn
Mix
Google