everywall/ladder
요약
Ladder는 현대 웹사이트의 페이월(paywall) 구현 및 콘텐츠 전달 방식을 테스트하고 분석하는 개발자 도구입니다. 이 프록시는 다양한 클라이언트 환경(브라우저, 크롤러 등)을 시뮬레이션하여 접근 제어, HTTP 헤더 검증, 그리고 사용자 에이전트별 일관된 동작 여부를 디버깅할 수 있게 합니다. Ladder는 응답/요청 수정, 커스텀 코드 주입, 다양한 인증 및 IP 위장 기능 등을 제공하며, 이를 통해 웹사이트가 클라이언트 유형에 따라 콘텐츠를 다르게 제공하는 '클로킹(Cloaking)' 현상을 테스트하고 연구하는 데 매우 유용합니다. 다만, 이 도구는 합법적인 목적으로만 사용되어야 하며, 고급 접근 제한 메커니즘을 우회하지는 못한다는 점을 명시하고 있습니다.
핵심 포인트
- 다양한 클라이언트 환경 시뮬레이션: 브라우저, 크롤러 등 다양한 에이전트를 모방하여 콘텐츠를 테스트할 수 있습니다.
- 강력한 디버깅 기능: CORS 헤더 수정/제거, HTTP 헤더 조작, 커스텀 코드 주입 등을 통해 웹사이트의 동작을 깊이 있게 분석합니다.
- 클로킹(Cloaking) 및 접근 제어 검증: 사이트가 클라이언트 유형에 따라 다른 콘텐츠를 제공하는지 여부를 테스트하고, 인증(Basic Auth) 기능을 구현할 수 있습니다.
- 다양한 배포 옵션: Docker 컨테이너, 바이너리, API 등 다양한 방식으로 사용 환경을 구축할 수 있습니다.
- 법적 책임 고지: 이 도구는 연구 및 QA 목적으로만 사용되어야 하며, 모든 법적/계약적 준수 책임은 사용자에게 있음을 강조합니다.
Ladder 는 http 웹 프록시입니다.
Ladder 는 현대 웹사이트에서 페이월 (paywall) 구현 및 콘텐츠 전달 동작을 테스트하고 분석하는 개발자 도구입니다.
개발자, 연구원, 출판사들이 다양한 클라이언트 환경 (브라우저와 크롤러 등) 을 시뮬레이션할 수 있으며, 다양한 조건 하에 콘텐츠가 어떻게 제공되는지 관찰할 수 있게 합니다. 이는 페이월 구성을 디버깅하고, 접근 제어 및 http 헤더를 검증하며, 다른 사용자 에이전트 (User Agent) 에서 일관된 동작을 보장하는 데 유용합니다.
Ladder 는 합법적인 테스트, 연구 및 품질 보증 목적으로만 의도되었습니다. 해당 웹사이트의 서비스 약관과 적용 가능한 법률에 따라 준수하여 사용해야 합니다.
sequenceDiagram
client->>+ladder: GET
ladder-->>ladder: apply RequestModifications
...
- 응답, 자산, 이미지에서 CORS 헤더 제거/수정
- 기타 헤더 제거/수정 (예: Content-Security-Policy)
- 페이지에 커스텀 코드 (HTML, CSS, JavaScript) 제거/주입
- 응답 또는 요청 URL 을 수정하기 위한 도메인 기반 규칙셋/코드 적용
- 사이트 가독성을 유지
- API
- RAW HTML 가져오기
- 커스텀 사용자 에이전트
- 커스텀 X-Forwarded-For IP
- Docker 컨테이너 (amd64, arm64)
- Linux 바이너리
- Mac OS 바이너리
- Windows 바이너리 (테스트 안됨)
- Basic Auth
- 액세스 로그
- 추적, 광고 및 기타 3 차당 콘텐츠가 깨질 수 있음
- 프록시를 도메인 목록에 제한
- 다른 ladder 에 규칙셋 노출
- Robots.txt 테스트
- 선택적 TOR 프록시
- 프록시된 URL 공유용 키
일부 웹사이트는 접근 클라이언트 유형 (예: 검색 엔진 크롤러 대 일반 웹 브라우저) 에 따라 다른 콘텐츠 (Cloaking) 를 제공합니다. Ladder 는 공개적으로 접근 가능한 콘텐츠를 테스트, 자동화 또는 연구 목적으로 가져오기 위해 다양한 클라이언트 유형을 시뮬레이션할 수 있도록 구성할 수 있습니다.
그러나 많은 웹사이트는 자동화된 접근을 제한하기 위한 고급 메커니즘 (지문 분석, 속도 제한, 행동 분석) 을 구현합니다. Ladder 는 이러한 보호를 우회하지 않으며, 적극적으로 접근을 제한하거나 제어하는 서비스에 올바르게 작동하지 않을 수 있습니다.
FlareSolverr 와 같은 3 차당 도구는 존재하며, 헤드리스 브라우저 환경에서 웹 페이지를 렌더링하기 위해 독립적으로 사용될 수 있습니다. 이러한 도구는 Ladder 의 일부가 아니며, 법적 및 계약적 제한을 받을 수 있습니다. 사용자는 모든 적용 가능한 규정과 준수하는지 확인하는 데 대해 전적으로 책임을 집니다.
경고: 인스턴스가 공개적으로 접근 가능할 경우 Basic Auth 를 활성화하도록 확인하세요. 이는 권한 없는 사용자가 프록시를 사용하지 못하게 합니다. Basic Auth 를 활성화하지 않으면 누구나 나쁜/불법적인 것을 browsable 하기 위해 프록시를 사용할 수 있습니다. 그리고 당신은 이에 대해 책임을 집니다.
-
바이너리 다운로드
-
바이너리 압축 및 실행
./ladder -r https://raw.githubusercontent.com/everywall/ladder-rules/main/ruleset.yaml -
브라우저 열기 (기본값: http://localhost:8080)
docker 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
helm-chart 하위 디렉토리의 README.md 를 참조하세요.
- 브라우저 열기 (기본값: http://localhost:8080)
- URL 입력
- Enter 누르기
또는 프록시 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"
| Variable | Description | Value |
|---|---|---|
PORT | ||
| Port to listen on | 8080 | |
PREFORK | ||
| Spawn multiple server instances | false | |
USER_AGENT | ||
| User agent to emulate | Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) | |
X_FORWARDED_FOR | ||
| IP forwarder address | 66.249.66.1 | |
USERPASS | ||
Enables Basic Auth, format admin:123456 |
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Go (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기