
Alternativa autohospedada a 12ft.io y 1ft.io. Proxy para eliminar encabezados CORS y modificar HTML.
Ladder es un proxy web http.
Ladder es una herramienta para desarrolladores diseñada para probar y analizar implementaciones de paywalls y el comportamiento de entrega de contenido en sitios web modernos.
Permite a desarrolladores, investigadores y editores simular diferentes entornos de cliente (como navegadores y rastreadores) y observar cómo se sirve el contenido en distintas condiciones. Esto resulta útil para depurar configuraciones de paywalls, verificar controles de acceso, cabeceras http y garantizar un comportamiento coherente entre diferentes agentes de usuario.
Ladder está destinado únicamente a fines legítimos de prueba, investigación y aseguramiento de calidad. Solo debe utilizarse de conformidad con las leyes aplicables y los términos de servicio del sitio web de destino.

sequenceDiagram
client->>+ladder: GET
ladder-->>ladder: apply RequestModifications
ladder->>+website: GET
website->>-ladder: 200 OK
ladder-->>ladder: apply ResultModifications
ladder->>-client: 200 OK
Algunos sitios web entregan contenido diferente (cloaking) dependiendo del tipo de cliente que accede a ellos (por ejemplo, rastreadores de motores de búsqueda frente a navegadores web estándar). Ladder puede configurarse para emular diferentes tipos de cliente con el fin de recuperar contenido de acceso público para fines de prueba, automatización o investigación.
Sin embargo, muchos sitios web implementan mecanismos avanzados para restringir el acceso automatizado, como la toma de huellas digitales (fingerprinting), la limitación de frecuencia (rate limiting) o el análisis de comportamiento. Ladder no elude tales protecciones y es posible que no funcione correctamente en servicios que restringen o controlan activamente el acceso.
Existen herramientas de terceros como FlareSolverr que pueden utilizarse de forma independiente para renderizar páginas web en un entorno de navegador sin interfaz gráfica (headless). Estas herramientas no forman parte de Ladder, y su uso puede estar sujeto a restricciones legales y contractuales. Los usuarios son los únicos responsables de asegurarse de que su uso cumple con todas las normativas aplicables.
Advertencia: Si su instancia será de acceso público, asegúrese de habilitar Basic Auth. Esto evitará que usuarios no autorizados utilicen su proxy. Si no habilita Basic Auth, cualquiera puede usar su proxy para navegar por contenido desagradable/ilegal. Y usted será considerado responsable de ello.
./ladder -r https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yamldocker run -p 8080:8080 -d --env RULESET=https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml --name ladder ghcr.io/everywall/ladder:latest
curl https://raw.githubusercontent.com/everywall/ladder/main/docker-compose.yaml --output docker-compose.yaml
docker-compose up -d
Consulte README.md en el subdirectorio helm-chart para obtener más información.
O de forma directa añadiendo la URL al final de la URL del proxy: http://localhost:8080/https://www.example.com
O cree un marcador con la siguiente URL:
javascript:window.location.href="http://localhost:8080/"+location.href
curl -X GET "http://localhost:8080/api/https://www.example.com"
http://localhost:8080/raw/https://www.example.com
| Variable | Descripción | Valor |
|---|---|---|
PORT | Puerto en el que escuchar | 8080 |
PREFORK | Generar múltiples instancias del servidor | false |
USER_AGENT | Agente de usuario a emular | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
X_FORWARDED_FOR | Dirección IP de reenvío | 66.249.66.1 |
USERPASS | Habilita Basic Auth, formato admin:123456 | `` |
LOG_URLS | Registrar las URL recuperadas | true |
DISABLE_FORM | Deshabilita el formulario de URL en la portada | false |
FORM_PATH | Ruta al HTML del formulario personalizado | `` |
RULESET | Ruta o URL a un archivo de ruleset; acepta directorios locales | https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml o /path/to/my/rules.yaml o /path/to/my/rules/ |
EXPOSE_RULESET | Haga que su Ruleset esté disponible para otras instancias de Ladder | true |
ALLOWED_DOMAINS | Lista separada por comas de dominios permitidos. Vacío = sin limitaciones | `` |
ALLOWED_DOMAINS_RULESET | Permitir dominios del Ruleset. false = sin limitaciones | false |
FLARESOLVERR_HOST | URL del servicio FlareSolverr para eludir Cloudflare (opcional) | http://localhost:8191 |
ALLOWED_DOMAINS y ALLOWED_DOMAINS_RULESET se combinan. Si ambos están vacíos, no se aplican limitaciones.
| BASE_PATH | Ruta base para el proxy, útil si desea ejecutar el proxy en una subruta (p. ej. http://localhost:8080/proxy/) | `` |
Es posible aplicar reglas personalizadas para modificar la respuesta o la URL solicitada. Esto se puede usar para eliminar elementos no deseados o modificar elementos de la página. El ruleset es un archivo YAML, un directorio con archivos YAML, o una URL a un archivo YAML que contiene una lista de reglas para cada dominio. Estas reglas se cargan al inicio.