reCAPTCHA에서 CaptchaLa로 마이그레이션
10분 이내에 끝나는 즉시 교체. 폼은 그대로 두고 검증 제공자만 바꾸세요. 순수 HTML, WordPress, Flarum 및 모든 백엔드와 호환됩니다.
코드 변경 예시
<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>
<script src="https://www.google.com/recaptcha/api.js" async defer></script><button id="login-btn">Sign in</button>
<script src="https://cdn.captcha-cdn.net/captchala-loader.js"></script>
<script>
loadCaptchala(() => Captchala.init({ appKey: 'YOUR_APP_KEY', action: 'login' })
.onSuccess(res => onToken(res.token))
.bindTo('#login-btn'));
</script>const res = await fetch('https://www.google.com/recaptcha/api/siteverify', {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: new URLSearchParams({
secret: process.env.RECAPTCHA_SECRET,
response: req.body['g-recaptcha-response'],
}),
})
const data = await res.json()
if (!data.success) return res.status(400).json({ error: 'bot' })const res = await fetch('https://apiv1.captcha.la/v1/validate', {
method: 'POST',
headers: {
'X-App-Key': process.env.CAPTCHALA_APP_KEY,
'X-App-Secret': process.env.CAPTCHALA_APP_SECRET,
'Content-Type': 'application/json',
},
body: JSON.stringify({ pass_token: req.body['captchala-token'] }),
})
const { data } = await res.json()
if (!data || !data.valid) return res.status(400).json({ error: 'bot' })마이그레이션 단계
- 1
가입하고 App Key + Secret 받기
무료 CaptchaLa 계정을 만들고 사이트를 추가한 뒤, App Key(공개)와 App Secret(서버용)을 복사하세요. 카드 등록은 필요 없습니다.
- 2
폼의 위젯 태그 교체
reCAPTCHA div와 script src를 CaptchaLa 버전으로 바꾸세요. 태그 클래스는 g-recaptcha에서 captchala로, data-sitekey는 data-app-key로 바뀌며, script URL은 당사 CDN을 가리킵니다.
- 3
폼 제출 필드명 변경
reCAPTCHA는 g-recaptcha-response라는 숨김 필드를 삽입합니다. CaptchaLa는 captchala-token을 사용합니다. 폼 핸들러가 필드를 이름으로 읽는다면 상수를 변경하세요. 그렇지 않으면 숨김 입력이 자동으로 흘러갑니다.
- 4
서버 측 검증 업데이트
검증 요청을 apiv1.captcha.la/v1/validate로 보내고, 헤더에 앱 자격 증명(X-App-Key / X-App-Secret)을, JSON 본문에 pass_token을 담으세요. 응답은 reCAPTCHA와 동일한 valid 플래그(data.valid)를 반환하므로 기존 분기 코드는 그대로 유지됩니다.
- 5
점진적으로 배포
대부분의 팀은 트래픽이 가장 적은 폼(뉴스레터 가입이나 문의 폼)부터 먼저 적용하고, 몇 시간 동안 전환율과 챌린지 비율을 지켜본 뒤 확대합니다. 최소 사용량도 계약도 없으므로 카나리 배포가 무료입니다.
자주 묻는 질문
모든 폼을 한 번에 마이그레이션해야 하나요?
아니요. 두 시스템은 같은 사이트에서 공존합니다. 상태나 쿠키를 공유하지 않습니다. 한 번에 하나의 폼씩 마이그레이션하세요.
reCAPTCHA Enterprise의 위험 점수는 어떻게 되나요? 점수가 이전되나요?
점수는 이전되지 않습니다(벤더 내부 값입니다). 대신 CaptchaLa는 검증 응답에 자체 위험 점수를 반환합니다. 수치 범위와 판정 로직이 문서화되어 있어, 팀들은 보통 기존 점수 임계값(예: 0.5)을 한 시간 내에 당사 값으로 매핑합니다.
Google 사이트 인증이나 다른 Google 연동이 깨지나요?
아니요. reCAPTCHA는 Search Console / 사이트 인증 / Analytics와 별개입니다. reCAPTCHA 태그를 제거해도 다른 Google 서비스에는 아무 영향이 없습니다.
reCAPTCHA 태그가 많이 박힌 사이트를 위한 마이그레이션 스크립트가 있나요?
제공하지 않습니다(찾아 바꾸기는 저장소당 정규식 하나이며, 코드베이스마다 템플릿 방식이 다릅니다). 대부분의 팀이 쓰는 10줄짜리 셸 스니펫은 문서에 있습니다.