
Alternativa auto-hospedada ao 12ft.io e 1ft.io. Proxy para remover cabeçalhos CORS e modificar HTML.
Ladder é um proxy web HTTP.
O Ladder é uma ferramenta de desenvolvimento para testar e analisar implementações de paywall e o comportamento de entrega de conteúdo em sites modernos.
Ele permite que desenvolvedores, pesquisadores e editores simulem diferentes ambientes de cliente (como navegadores e rastreadores) e observem como o conteúdo é servido em condições variadas. Isso o torna útil para depurar configurações de paywall, verificar controles de acesso, cabeçalhos HTTP e garantir um comportamento consistente entre diferentes user agents.
O Ladder destina-se exclusivamente a fins legítimos de teste, pesquisa e garantia de qualidade. Ele deve ser usado apenas em conformidade com as leis aplicáveis e os termos de serviço do site alvo.

sequenceDiagram
client->>+ladder: GET
ladder-->>ladder: apply RequestModifications
ladder->>+website: GET
website->>-ladder: 200 OK
ladder-->>ladder: apply ResultModifications
ladder->>-client: 200 OK
Alguns sites entregam conteúdos diferentes (Cloaking) dependendo do tipo de cliente que os acessa (por exemplo, rastreadores de mecanismos de busca versus navegadores web padrão). O Ladder pode ser configurado para emular diferentes tipos de cliente, a fim de recuperar conteúdo publicamente acessível para fins de teste, automação ou pesquisa.
No entanto, muitos sites implementam mecanismos avançados para restringir o acesso automatizado, como fingerprinting, limitação de taxa (rate limiting) ou análise comportamental. O Ladder não contorna essas proteções e pode não funcionar corretamente em serviços que restringem ou controlam ativamente o acesso.
Ferramentas de terceiros, como o FlareSolverr, existem e podem ser usadas de forma independente para renderizar páginas web em um ambiente de navegador headless. Essas ferramentas não fazem parte do Ladder, e seu uso pode estar sujeito a restrições legais e contratuais. Os usuários são os únicos responsáveis por garantir que seu uso esteja em conformidade com todos os regulamentos aplicáveis.
Aviso: Se a sua instância for acessível publicamente, certifique-se de ativar o Basic Auth. Isso impedirá que usuários não autorizados usem o seu proxy. Se você não ativar o Basic Auth, qualquer pessoa poderá usar o seu proxy para navegar em conteúdo impróprio/ilegal. E você será considerado responsável por isso.
./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 no subdiretório helm-chart para obter mais informações.
Ou acesse diretamente acrescentando a URL ao final da URL do proxy: http://localhost:8080/https://www.example.com
Ou crie um favorito com a seguinte 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
| Variável | Descrição | Valor |
|---|---|---|
PORT | Porta em que deve escutar | 8080 |
PREFORK | Gerar múltiplas instâncias do servidor | false |
USER_AGENT | User agent a emular | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
X_FORWARDED_FOR | Endereço de IP de encaminhamento | 66.249.66.1 |
USERPASS | Ativa o Basic Auth, formato admin:123456 | `` |
LOG_URLS | Registra as URLs buscadas | true |
DISABLE_FORM | Desativa o formulário de URL na página inicial | false |
FORM_PATH | Caminho para o HTML do formulário personalizado | `` |
RULESET | Caminho ou URL para um arquivo de ruleset; aceita diretórios locais | https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml ou /path/to/my/rules.yaml ou /path/to/my/rules/ |
EXPOSE_RULESET | Disponibiliza seu Ruleset para outras instâncias do Ladder | true |
ALLOWED_DOMAINS | Lista de domínios permitidos separados por vírgula. Vazio = sem limitações | `` |
ALLOWED_DOMAINS_RULESET | Permite domínios do Ruleset. false = sem limitações | false |
FLARESOLVERR_HOST | URL do serviço FlareSolverr para bypass do Cloudflare (opcional) | http://localhost:8191 |
ALLOWED_DOMAINS e ALLOWED_DOMAINS_RULESET são combinados. Se ambos estiverem vazios, nenhuma limitação será aplicada.
| BASE_PATH | Caminho base para o proxy, útil se você quiser executar o proxy em um subcaminho (por exemplo, http://localhost:8080/proxy/) | `` |
É possível aplicar regras personalizadas para modificar a resposta ou a URL solicitada. Isso pode ser usado para remover elementos indesejados ou modificar elementos da página. O ruleset é um arquivo YAML, um diretório com arquivos YAML ou uma URL para um arquivo YAML que contém uma lista de regras para cada domínio. Essas regras são carregadas na inicialização.
Há um ruleset básico disponível em um repositório separado ruleset.yaml. Sinta-se à vontade para adicionar suas próprias regras e criar um pull request.