
Самохостинговая альтернатива 12ft.io и 1ft.io. Прокси для удаления CORS-заголовков и изменения HTML.
Ladder — это HTTP веб-прокси.
Ladder — это инструмент для разработчиков, предназначенный для тестирования и анализа реализаций платного контента (paywall) и поведения при доставке контента на современных веб-сайтах.
Он позволяет разработчикам, исследователям и издателям симулировать различные клиентские окружения (например, браузеры и краулеры) и наблюдать, как контент обслуживается в различных условиях. Это полезно для отладки конфигураций paywall, проверки контроля доступа, HTTP-заголовков и обеспечения согласованного поведения для разных пользовательских агентов.
Ladder предназначен только для легитимного тестирования, исследований и обеспечения качества. Его следует использовать только в соответствии с применимым законодательством и условиями обслуживания целевого веб-сайта.

sequenceDiagram
client->>+ladder: GET
ladder-->>ladder: apply RequestModifications
ladder->>+website: GET
website->>-ladder: 200 OK
ladder-->>ladder: apply ResultModifications
ladder->>-client: 200 OK
Некоторые веб-сайты предоставляют разный контент (клоакинг) в зависимости от типа клиента, который к ним обращается (например, поисковые краулеры в отличие от стандартных веб-браузеров). Ladder можно настроить для эмуляции различных типов клиентов с целью получения общедоступного контента для тестирования, автоматизации или исследовательских целей.
Однако многие веб-сайты внедряют продвинутые механизмы для ограничения автоматизированного доступа, такие как снятие отпечатков (fingerprinting), ограничение частоты запросов или поведенческий анализ. Ladder не обходит такие защиты и может работать некорректно на сервисах, которые активно ограничивают или контролируют доступ.
Существуют сторонние инструменты, такие как FlareSolverr, которые можно использовать независимо для рендеринга веб-страниц в среде headless-браузера. Эти инструменты не являются частью Ladder, и их использование может подпадать под юридические и договорные ограничения. Пользователи несут единоличную ответственность за то, чтобы их использование соответствовало всем применимым нормам.
Предупреждение: Если ваш экземпляр будет публично доступен, обязательно включите Basic Auth. Это предотвратит использование вашего прокси неавторизованными пользователями. Если вы не включите Basic Auth, любой сможет использовать ваш прокси для просмотра непристойных/нелегальных материалов. И ответственность за это будете нести вы.
./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
Дополнительную информацию см. в README.md в подкаталоге helm-chart.
Или напрямую, добавив URL в конец URL прокси: http://localhost:8080/https://www.example.com
Или создайте закладку со следующим 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 | Description | Value |
|---|---|---|
PORT | Порт для прослушивания | 8080 |
PREFORK | Запускать несколько экземпляров сервера | false |
USER_AGENT | Эмулируемый пользовательский агент | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) |
X_FORWARDED_FOR | Адрес IP-пересылки | 66.249.66.1 |
USERPASS | Включает Basic Auth, формат admin:123456 | `` |
LOG_URLS | Журналировать запрашиваемые URL | true |
DISABLE_FORM | Отключает форму URL на главной странице | false |
FORM_PATH | Путь к пользовательскому HTML-файлу формы | `` |
RULESET | Путь или URL к файлу ruleset, принимает локальные директории | https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml или /path/to/my/rules.yaml или /path/to/my/rules/ |
EXPOSE_RULESET | Делает ваш Ruleset доступным для других экземпляров Ladder | true |
ALLOWED_DOMAINS | Список разрешённых доменов через запятую. Пусто = без ограничений | `` |
ALLOWED_DOMAINS_RULESET | Разрешить домены из Ruleset. false = без ограничений | false |
FLARESOLVERR_HOST | URL сервиса FlareSolverr для обхода Cloudflare (опционально) | http://localhost:8191 |
ALLOWED_DOMAINS и ALLOWED_DOMAINS_RULESET объединяются. Если оба пусты, ограничения не применяются.
| BASE_PATH | Базовый путь для прокси, полезен, если вы хотите запустить прокси по подпути (например, http://localhost:8080/proxy/) | `` |
Существует возможность применять пользовательские правила для изменения ответа или запрашиваемого URL. Это можно использовать для удаления нежелательных элементов или изменения элементов на странице. Ruleset — это YAML-файл, директория с YAML-файлами или URL к YAML-файлу, содержащему список правил для каждого домена. Эти правила загружаются при запуске.