전체신규개선해결
해결

Browser가 Cloudflare 통과 후 실제 상태를 캡처함

Cloudflare로 보호되는 대상이 챌린지 통과 후 실제 geo-block 페이지(451)를 제공할 때, watcher가 통과 상태를 하드코딩했기 때문에 Browser 제품은 이를 200으로 보고했습니다. 이제 watcher는 통과 후의 실제 Document를 읽으므로 200은 200으로 유지되고 451은 451로 표시되며, Auto는 잘못된 콘텐츠를 거부하고 validate 규칙과 정확히 일치하는 exit를 계속 검색합니다.

해결

비라틴 키보드에서 Cmd+K 작동

이제 키보드 레이아웃과 관계없이 Cmd+K(Ctrl+K) 단축키로 커맨드 팔레트와 검색 모달을 열 수 있습니다. 이전에는 입력된 문자(키릴 문자 레이아웃의 경우 к)를 일치시켰기 때문에 비라틴 키보드에서는 작동하지 않았습니다. 이제는 물리적 키를 기준으로 일치시킵니다. 메인 사이트, 블로그 및 문서 전체에서 수정되었습니다.

해결

콜드 solve 시 Auto 전체 예산 실행

콜드 Auto solve는 몇 분이 소요될 수 있으며, 이제 request는 전체 예산 동안 유지됩니다. 모든 계층의 오류는 클라이언트가 파싱할 수 있는 JSON으로 반환됩니다.

해결

반복 요청 시 자동으로 2 크레딧 적용

cookie 재사용이 가능한 사이트(bet365가 기준이 됨)에서 첫 번째 해결 후 저렴한 2 크레딧 replay로 전환되는 대신 요청당 15 크레딧의 비싼 브라우저 해결 방식에 머물러 있었습니다. 두 가지 버그가 있었습니다. 일시적인 전송 오류 발생 시 래치가 실행되는 문제와, 성공적인 브라우저 replay가 세션 cookie를 갱신하지 않는 문제였습니다. 두 문제 모두 수정되었습니다. 이제 요금 정책에 명시된 대로 cookie 재사용 가능 사이트에 대한 반복 요청은 첫 번째 해결 이후 2 크레딧이 청구됩니다.

해결

API의 cross-origin 액세스 제한

foura.ai만 credentials를 사용하여 API를 호출할 수 있도록 cross-origin 액세스를 강화했습니다. 또한 metrics endpoint의 입력 필터를 강화하고 개발 전용 fallback secret을 제거했습니다. 기존 integration은 변경되지 않습니다.

해결

사용자 지정 validate 규칙의 성공 처리

요청에 validate.status.accept를 설정한 경우, 엔진은 허용된 200 이외의 상태 코드도 정상적인 성공으로 처리합니다. 기존에는 Activity가 이를 실패로 분류하여 사용량 통계에 오류를 발생시켰습니다. 이제 결과는 사용자의 validate 판정을 따르므로, 허용된 403은 App Fail이 아닌 성공으로 표시됩니다.

해결

Non-UTF-8 페이지가 이제 정상적으로 디코딩됩니다

Single을 통해 키릴 문자, 중국어, 일본어 또는 기타 non-UTF-8 페이지를 스크래핑할 때 body가 깨진 글자로 반환되곤 했습니다. 이전에는 사용자가 raw bytes를 확인하기 전에 모든 response를 UTF-8로 강제 디코딩했습니다. 이제는 response에서 charset을 읽어와(Content-Type, 그 다음 <meta charset>, 마지막으로 UTF-8 fallback 적용) 올바르게 디코딩합니다. 이 문제를 제보해 주신 Alexandar Kanchev (Sensika) 님께 감사드립니다.

해결

request를 그대로 에코하는 가짜 proxies 감지

실제 환경의 일부 proxies는 실제로 request를 전달하지 않습니다. 이들은 request를 plaintext server dump 형태로 에코하여 내부 데이터를 탈취하려고 시도합니다. 이제 response가 코드에 도달하기 전에 이 패턴을 감지하므로, Single, Browser, Proxy Finder는 가비지 데이터 대신 명확한 실패(또는 retry)를 반환합니다.

해결

새로 발견된 proxy가 pool에 더 빠르게 진입합니다

새로 발견된 proxy가 검증을 받기 전에 대기해야 했던 지연 문제를 해결했습니다. 이제 Proxy Finder가 이를 즉시 확인하므로, 더 많은 활성 상태의 작동 중인 proxy가 순환에 투입되어 pool이 더 최신 상태로 유지됩니다.

해결

Playground 쿠키, RFC 6265 host-only 규칙 준수

Playground는 이제 Domain 속성을 올바르게 추적하므로, host-only cookie가 해당 호스트에 유지됩니다. Parsed 뷰는 이를 HO 배지로 표시하며, Raw는 업스트림에서 전송한 내용과 일치합니다.

해결

Playground 필드와 실제 API 스키마 일치

이제 모든 Playground 필드가 스키마와 일치합니다. Browser는 GET을 강제 적용하고 본문 텍스트 영역을 숨기며, Raw 탭은 API에 전달되는 정확한 JSON과 curl 재현 코드를 표시합니다.

해결

Single 및 Proxy Finder에서 Unblocker 엔드투엔드 지원

unblocker: true을 통해 이제 Single 및 Proxy Finder는 전체 unblocker 서명을 origin까지 전달합니다. 따라서 이를 검사하는 안티봇 방화벽이 request를 정상적으로 통과시킵니다.

해결

Browser에서 Cloudflare 패시브 챌린지 해결

일부 Cloudflare 사이트는 200 OK를 반환하지만, 잠시 후 실제 cf_clearance cookie를 발급하는 백그라운드 스크립트를 주입합니다. 기존에는 Browser가 해당 cookie가 도착하기 전에 페이지를 반환하여 jar를 비워두었습니다. 이제 Browser는 cookie 이벤트를 대기하므로, Single 또는 Proxy를 통해 재사용할 수 있는 깨끗한 cf_clearance를 얻게 됩니다.

해결

블로그 페이지네이션 링크 정상 작동

블로그의 Older 버튼을 누르면 1페이지로 돌아가는 문제가 있었습니다. 이제 페이지네이션이 번호 기반 내비게이션과 함께 /blog/page/N/ URL에서 작동하므로 이전 게시물을 정상적으로 탐색할 수 있습니다. 감사합니다, Vladimir Petrov.

해결

모든 요청에 대해 브라우저에서 JavaScript 실행

이제 브라우저에서 모든 요청을 JavaScript 엔진을 통해 실행하므로, Cloudflare 챌린지와 JS 비중이 높은 페이지가 정상적으로 렌더링됩니다.