// ====================================================== // CAPA EXTRA DE SEGURIDAD: PIN + COOKIE PARA /wp-admin // ====================================================== if (php_sapi_name() !== 'cli') { $uri = $_SERVER['REQUEST_URI'] ?? ''; // Rutas internas de WordPress que NO deben pasar por el PIN $excluded_paths = [ '/wp-admin/admin-ajax.php', '/wp-admin/async-upload.php', '/wp-admin/post.php', '/wp-admin/upload.php', '/wp-admin/media-new.php', ]; // Si la ruta está excluida → no aplicar la capa de seguridad if (in_array($uri, $excluded_paths)) { $is_admin_area = false; } else { // Detectar acceso a wp-admin o wp-login $is_admin_area = preg_match('#/(wp-login\.php|wp-admin/?$)#', $uri); } if ($is_admin_area) { $cookie_name = 'admin_gate_token'; $cookie_lifetime = 600; // segundos (10 minutos) $secret_pin = '1234'; // CAMBIA ESTE PIN // Función para mostrar el formulario y cortar ejecución $show_gate = function($error_msg = '') use ($uri, $cookie_name, $secret_pin) { $error_html = ''; if ($error_msg !== '') { $error_html = '
' . htmlspecialchars($error_msg, ENT_QUOTES, 'UTF-8') . '
'; } ?> Acceso restringido

Acceso restringido

time(), 'ip' => $_SERVER['REMOTE_ADDR'] ?? '', 'ua' => $_SERVER['HTTP_USER_AGENT'] ?? '' ]; setcookie($cookie_name, json_encode($data), 0, '/', '', true, true); header('Location: ' . $uri); exit; } else { $show_gate('PIN incorrecto'); } } else { // Primera vez → mostrar formulario $show_gate(); } } } } // ====================================================== // FIN CAPA EXTRA DE SEGURIDAD // ======================================================