DEV Community

Erick Eduardo Ramos
Erick Eduardo Ramos

Posted on

Cómo solucionar el error \"Enable JavaScript and cookies to continue\"

Cómo solucionar el error "Enable JavaScript and cookies to continue"

Este mensaje aparece cuando Cloudflare (u otro proxy inverso de seguridad) bloquea la solicitud del cliente porque detecta que JavaScript y/o cookies están deshabilitados en el navegador, o porque la solicitud no cumple con los requisitos mínimos de verificación de seguridad.

🔍 Raíz técnica

Cloudflare implementa mecanismos como "Browser Integrity Check" y "JavaScript Challenge (también llamado Managed Challenge), que requieren que el cliente:

  1. Ejecute JavaScript (para calcular un token de validación).
  2. Almacene cookies de sesión (para mantener el estado de la verificación).
  3. Comunique correctamente con el endpoint de verificación (normalmente /cdn-cgi/challenge-platform/...).

Si el cliente (navegador, scraper, bot, o cliente HTTP personalizado) no cumple con esto, recibe esta página de bloqueo.


✅ Solución definitiva (según tu caso)

Caso 1: Eres un usuario final (navegando normalmente)

  1. Habilita JavaScript en tu navegador

    • Chrome/Edge: Configuración > Privacidad y seguridad > Configuración de sitios > JavaScript > Permitido
    • Firefox: Preferencias > Privacidad y seguridad > Permisos > Habilitar JavaScript
    • Safari: Preferencias > Seguridad > Habilitar JavaScript
  2. Habilita cookies de terceros (si es necesario)

    Algunos desafíos usan dominios como cloudflare.com o cdn-cgi.com. Asegúrate de que no estén bloqueadas por extensiones (uBlock Origin, Privacy Badger, etc.).

  3. Desactiva temporalmente bloqueadores de anuncios/privacidad

    Estas extensiones suelen bloquear los scripts de verificación de Cloudflare.

  4. Reinicia el navegador

    Algunas veces, el desafío se queda "colgado" en memoria. Reiniciar fuerza una nueva sesión.


Caso 2: Eres desarrollador (haciendo peticiones programáticas: cURL, Python, etc.)

El problema es que no estás emulando el flujo completo de verificación de Cloudflare. No basta con hacer una petición GET simple.

Solución correcta: Usa un cliente HTTP con soporte para JS y cookies

✅ Opción recomendada: cloudscraper (Python)
pip install cloudscraper
Enter fullscreen mode Exit fullscreen mode
import cloudscraper

scraper = cloudscraper.create_scraper(
    browser={
        'browser': 'firefox',
        'platform': 'windows',
        'mobile': False
    }
)

response = scraper.get("https://sitioweb.com")
print(response.text)
Enter fullscreen mode Exit fullscreen mode
✅ Alternativa: requests + cloudflare-scrape manual (solo para casos simples)
import requests
from cloudscraper import CloudScraper

session = CloudScraper.create_scraper()
resp = session.get("https://sitioweb.com")
# Ahora resp.status_code == 200 y resp.text contiene la página real
Enter fullscreen mode Exit fullscreen mode

⚠️ No uses requests puro ni curl sin soporte JS. Cloudflare bloqueará siempre la petición.


Caso 3: Eres administrador del sitio (el desafío aparece en tu propia web)

  1. Verifica si el desafío es innecesario para tu tráfico

    • Ve a Cloudflare > Security > WAF > Managed Challenges
    • Cambia de "Managed Challenge" a "Block" o "Disable" según el riesgo.
  2. Añade reglas de excepción (IP, User-Agent, etc.)

    • Security > Events > Create Firewall Rule
    • Ejemplo: not ip.src in {192.168.0.0/16} (excluir tráfico interno)
  3. Asegura que los endpoints de Cloudflare no estén bloqueados por tu CDN/firewall

    • /cdn-cgi/ debe estar accesible sin autenticación.

🧠 Pro-tip

  • Nunca confíes en User-Agent para evadir el desafío. Cloudflare ya lo usa como señal de bot, no como solución.
  • Si usas Selenium/Playwright, desactiva las banderas de automatización (--disable-blink-features=AutomationControlled) y simula interacción humana (scroll, click).
  • Para pruebas locales: usa localhost con 127.0.0.1 y desactiva Cloudflare temporalmente en el dominio.

✅ Verificación final: Si después de aplicar la solución el error desaparece y la página carga normalmente (sin redirecciones a /cdn-cgi/...), el problema está resuelto.

Top comments (0)