Hacker News

Cloudflare Turnstile solver library (no headless browser required)

cfsolve, 브라우저 프로필을 모사해 Turnstile 토큰과 챌린지 쿠키 반환

Rust 도구 cfsolve가 Turnstile 위젯 토큰과 챌린지 페이지용 cf_clearance 쿠키를 반환하는 기능을 공개했습니다. 헤드리스 브라우저 대신 Safari·Chrome 계열 프로필과 기록된 검사 응답을 사용하며, 쿠키는 프로필과 같은 IP 주소 및 사용자 에이전트로 보내야 합니다. 위젯 토큰은 사이트 측 검증이 필요하고, 쿠키의 효력은 사이트 설정과 세션 행동에 따라 달라집니다.

본문

Rust 라이브러리이자 명령줄 도구인 cfsolve가 Cloudflare Turnstile 위젯에서 토큰을 받고, 챌린지 페이지를 처리해 cf_clearance 쿠키와 보호된 페이지 응답을 반환하는 기능을 공개했습니다. 헤드리스 브라우저를 띄우는 대신 브라우저 프로필과 챌린지 검사 응답 기록을 사용합니다.

프로필 파일은 도구가 가장할 브라우저의 특성을 지정하며, 프로필이 참조하는 검사 응답은 JSON 파일로 보관합니다. 저장소는 현재 Safari와 Chrome 계열 프로필을 지원한다고 설명하고, 응답 기록을 마련하는 데 수작업이나 AI를 활용할 수 있다고 안내합니다. 챌린지 페이지에서 받은 cf_clearance 쿠키는 해당 프로필과 같은 IP 주소 및 사용자 에이전트로 보내야 합니다.

두 결과물의 쓰임은 다릅니다. Cloudflare의 기본 Turnstile 토큰은 일회용이며, 사이트 운영자는 Siteverify API를 호출해 토큰을 검증해야 합니다. cf_clearance는 챌린지 페이지를 통과할 때 발급되는 쿠키로, 통과 가능한 챌린지 수준과 유효 기간은 사이트의 설정에 따라 달라집니다. Cloudflare는 세션 행동에 따라 유효한 쿠키에도 다시 챌린지를 요구할 수 있다고 설명합니다.

저장소는 새 챌린지 빌드나 페이지에 위젯이 없는 경우 등을 실패 조건으로 듭니다. 따라서 ‘헤드리스 브라우저 불필요’는 브라우저 프로세스를 띄우지 않는 구현 방식을 가리킵니다. 프로필과 검사 응답 기록을 관리해야 하고, 결과물의 적용 범위도 사이트 설정과 세션 조건에 좌우됩니다.

자료: GitHub / 정리·해설: Trawling

참고 자료