2026년 reCAPTCHA에서 Cloudflare Turnstile로 이전하기
Turnstile 드롭인 교체, 서버 코드 유지하면서 프라이버시 개선까지 한나절 안에 끝낸다. 함정 포함 단계별 가이드.
- STEP 1
Cloudflare 대시보드에서 Turnstile 사이트 키 발급
dash.cloudflare.com 로그인, Turnstile 제품 열기 (계정 업그레이드 불필요, 도메인 연결 불필요), 새 사이트 생성. UX/보안 균형 좋은 Managed 모드 권장, 사용자 마찰 최소화 원하면 Non-interactive. 위젯이 호스팅될 모든 도메인 추가 (localhost, 프리뷰 도메인 포함). 사이트 키와 시크릿 키 복사 , 사이트 키는 공개, 시크릿 키는 서버 설정에만.
- STEP 2
reCAPTCHA 스크립트 태그와 폼 위젯 교체
recaptcha/api.js 스크립트 제거, https://challenges.cloudflare.com/turnstile/v0/api.js 로 교체 (async, defer). g-recaptcha div가 있던 자리에 cf-turnstile 사용, data-sitekey에 사이트 키 설정. 위젯은 동일하게 렌더되고 cf-turnstile-response라는 hidden input을 폼에 추가 (g-recaptcha-response 대응). 대부분 폼은 클라이언트 추가 변경 없이 동작.
- STEP 3
서버 검증 호출 업데이트
서버 엔드포인트 URL을 https://www.google.com/recaptcha/api/siteverify 에서 https://challenges.cloudflare.com/turnstile/v0/siteverify 로 변경. 요청 body 필드 동일 (secret, response, 선택적 remoteip), 응답 JSON 모양 동일 (success boolean, error-codes array). 대부분 서버 코드 한 줄 diff. reCAPTCHA Enterprise 위험 점수 썼다면, Turnstile은 success/failure만 반환 (0.0-1.0 점수 아님). 낮은 점수 대응은 하드 챌린지, Turnstile 내부에서 처리.
- STEP 4
개인정보 처리방침 업데이트, reCAPTCHA 배지 제거
- STEP 5
프로덕션에서 테스트, 그 다음 reCAPTCHA 프로젝트 종료