# 캡차 유형 판별하기

> 웹 페이지의 캡차가 어떤 종류인지 판별하는 방법과 reCAPTCHA v2, v2 인비저블, v3, Enterprise, hCaptcha, Cloudflare Turnstile, Cloudflare 챌린지 페이지의 차이, 그리고 각각에 맞는 YesCaptcha 작업 유형을 안내해요.

Source: https://docs.yescaptcha.com/ko/guides/identify-captcha/ · Last verified: 2026-10-15

> This page was machine-translated from the Chinese version. If anything differs, the Chinese version prevails: https://docs.yescaptcha.com/zh/guides/identify-captcha/

알맞은 작업 유형을 고르려면 먼저 캡차를 알아봐야 해요. 가장 확실한 방법은 브라우저 개발자 도구(F12)를 열고 Network(네트워크) 패널에서 페이지가 어떤 캡차 스크립트를 불러오는지 확인하는 거예요. 겉모습으로도 판단할 수 있어요.

## 모양으로 구별하기

각 캡차가 웹페이지에서 어떻게 보이는지 보여 주는 애니메이션 일러스트예요(스크린샷이 아니에요). 카드를 클릭하면 해당 작업 유형 페이지로 이동해요. 모양만으로 구별하기 어려우면 아래 빠른 참조표와 Network 패널로 확인하세요.

-   [reCAPTCHA v2: 체크박스 · 보이지 않는 방식](https://docs.yescaptcha.com/ko/tasks/recaptcha-v2.md)
-   [reCAPTCHA v3](https://docs.yescaptcha.com/ko/tasks/recaptcha-v3.md)
-   [reCAPTCHA v2 이미지 인식: 3×3 그리드 · 4×4 그리드 · 1×1 단일 이미지](https://docs.yescaptcha.com/ko/tasks/recaptcha-classification.md)
-   [hCaptcha](https://docs.yescaptcha.com/ko/tasks/hcaptcha.md)
-   [hCaptcha 이미지 인식: 이미지 그리드 · 지점 클릭 · 드래그 앤 드롭 · 애니메이션 질문](https://docs.yescaptcha.com/ko/tasks/hcaptcha-classification.md)
-   [Cloudflare Turnstile: 자동 · 체크박스](https://docs.yescaptcha.com/ko/tasks/turnstile.md)
-   [Cloudflare 챌린지 페이지: 자동 · 체크박스](https://docs.yescaptcha.com/ko/tasks/cloudflare-challenge.md)
-   [FunCaptcha 이미지 인식: 화살표 · 6개 이미지 그리드](https://docs.yescaptcha.com/ko/tasks/funcaptcha-classification.md)
-   [AWS WAF / bCaptcha 이미지 인식: AWS WAF · bCaptcha](https://docs.yescaptcha.com/ko/tasks/aws-bcaptcha-classification.md)
-   [이미지 영문·숫자 인식: 노이즈 · 노이즈 선 · 수식](https://docs.yescaptcha.com/ko/tasks/image-to-text.md)

## 빠른 참조표

| 보이는 모습 | 종류 | 사용할 작업 유형 |
| --- | --- | --- |
| “로봇이 아닙니다(I’m not a robot)” 체크박스 | reCAPTCHA v2 | [reCAPTCHA v2](https://docs.yescaptcha.com/ko/tasks/recaptcha-v2.md) |
| 체크박스가 없고, 제출을 누르면 이미지 문제가 나타나요. 오른쪽 아래에 reCAPTCHA 배지가 있어요 | reCAPTCHA v2 인비저블(또는 v3) | 아래 “reCAPTCHA 버전”을 참고하세요 |
| 아무 상호작용 없이 오른쪽 아래에 reCAPTCHA 배지만 있어요 | reCAPTCHA v3 | [reCAPTCHA v3](https://docs.yescaptcha.com/ko/tasks/recaptcha-v3.md) |
| “I am human” 체크박스, hCaptcha 표시가 있는 이미지 문제 | hCaptcha | [hCaptcha](https://docs.yescaptcha.com/ko/tasks/hcaptcha.md) |
| 폼 안에 Cloudflare 인증 상자가 들어 있고, 체크한 뒤에도 페이지가 이동하지 않아요 | Cloudflare Turnstile | [Turnstile](https://docs.yescaptcha.com/ko/tasks/turnstile.md) |
| 페이지 전체에 “Just a moment…” / “Checking your connection”이 표시되고 자동으로 이동해요 | Cloudflare 챌린지 페이지 | [Cloudflare 챌린지 페이지](https://docs.yescaptcha.com/ko/tasks/cloudflare-challenge.md) |
| Arkose Labs의 퍼즐, 이미지 선택 문제(예: “올바른 방향의 이미지를 고르세요”) | FunCaptcha | [FunCaptcha 이미지 인식](https://docs.yescaptcha.com/ko/tasks/funcaptcha-classification.md) |
| 글자와 숫자가 왜곡된 이미지 한 장 | 문자 캡차 | [이미지 영숫자 인식](https://docs.yescaptcha.com/ko/tasks/image-to-text.md) |

## reCAPTCHA 버전

Network 패널에서 `api.js` 또는 `enterprise.js`를 검색하세요.

| 불러온 스크립트 | 버전 |
| --- | --- |
| `recaptcha/api.js`, `render` 파라미터가 없거나 `render=explicit` | v2 일반 버전 |
| 위와 같고, `anchor` 요청 주소에 `size=invisible`이 있어요 | v2 인비저블 버전, 작업에 `"isInvisible": true`를 추가하세요 |
| `recaptcha/api.js?render=SITE_KEY` (`render`가 `explicit`이 아닌 경우) | v3 일반 버전 |
| `recaptcha/enterprise.js`, `render` 파라미터가 없거나 `render=explicit` | v2 Enterprise 버전 |
| `recaptcha/enterprise.js?render=SITE_KEY` | v3 Enterprise 버전 |

예시:

```text
https://www.google.com/recaptcha/api.js?onload=onloadcallback&render=explicit   → v2
https://www.google.com/recaptcha/api.js?render=6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696   → v3
https://www.google.com/recaptcha/enterprise.js?render=explicit   → v2 Enterprise
```

v2 인비저블 버전은 v3 유형으로만 통과되는 경우도 있으니 두 가지를 모두 시도해 보세요.

콘솔(Console)에서 아래 코드를 실행할 수도 있어요. 페이지에 있는 모든 reCAPTCHA의 버전, 사이트 키, 페이지 주소, 콜백 함수를 나열해 줘요.

find-recaptcha-clients.js

```js
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().
// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.
function findRecaptchaClients() {
  if (typeof ___grecaptcha_cfg === 'undefined') return [];
  return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => {
    const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' };
    const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object');
    objects.forEach(([toplevelKey, toplevel]) => {
      const found = Object.entries(toplevel).find(
        ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value,
      );
      if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI;
      if (found) {
        const [sublevelKey, sublevel] = found;
        data.sitekey = sublevel.sitekey;
        const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback';
        const callback = sublevel[callbackKey];
        if (!callback) {
          data.callback = null;
          data.function = null;
        } else {
          data.function = callback;
          const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join('');
          data.callback = `___grecaptcha_cfg.clients${keys}`;
        }
      }
    });
    return data;
  });
}

findRecaptchaClients();
```

실행 결과 예시:

```json
[
  {
    "id": "0",
    "version": "V2",
    "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "function": "onSuccess",
    "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']",
    "pageurl": "https://www.google.com/recaptcha/api2/demo"
  }
]
```

비교용으로 Google 공식 데모 페이지를 사용할 수 있어요. v2 일반 버전은 `https://www.google.com/recaptcha/api2/demo`, v2 인비저블 버전은 `https://www.google.com/recaptcha/api2/demo?invisible=true`예요.

## Turnstile과 Cloudflare 챌린지 페이지

둘 다 Cloudflare에서 제공하지만 서로 다른 종류예요.

-   **Turnstile**은 웹 페이지 폼에 삽입된 인증 상자예요. 인증이 끝나면 체크 표시가 나타나고 페이지는 이동하지 않아요. 페이지가 `challenges.cloudflare.com/turnstile/v0/api.js`를 불러와요. [Turnstile](https://docs.yescaptcha.com/ko/tasks/turnstile.md)을 사용하세요.
-   **Cloudflare 챌린지 페이지**는 페이지 전체가 Cloudflare의 검사 화면(“Just a moment…”, “example.com needs to review the security of your connection”)으로 바뀌어요. 안에 인증 상자가 있을 수도 있고, 통과하면 실제 페이지로 자동 이동해요. 소스에 `__cf_chl_rt_tk` 또는 `cdn-cgi/challenge-platform`이 있어요. [Cloudflare 챌린지 페이지](https://docs.yescaptcha.com/ko/tasks/cloudflare-challenge.md)를 사용하세요.

프로그램으로 요청하면 403과 “Just a moment…“가 반환되는데 브라우저로는 바로 열린다면, 대부분 TLS 핑거프린트 때문에 차단된 거예요. 브라우저의 TLS 핑거프린트를 흉내 내는 라이브러리(예: curl\_cffi)로 바꾸면 요청할 수 있고, 챌린지를 풀 필요가 없어요.
