피드로 돌아가기
Dev.toSecurity
원문 읽기
Zoho Forms HTML 익스포트가 서버 전송 시spam 보호 없는 구조를 Cloudflare Turnstile 연동으로 보완하는 방법을 설명한다
Adding Cloudflare Turnstile to Zoho Form HTML Exports
AI 요약
Context
Zoho Forms는 HTML 패키지로 익스포트할 수 있지만 익스포트된 폼은 Zoho 서버에 직접 POST하여 spam 보호 기능이 없다. Client-only 모드는 브라우저 기반 bot을 차단하지만 direct POST 공격은 막지 못한다. Production 환경에서는 Cloudflare Worker를 통한 server-side 검증이 필수적이다.
Technical Solution
- ZohoTurnstile.init()으로 siteKey 설정 시 Client-only 모드 자동 활성화
- Worker 생성 시 TURNSTILE_VERIFY_URL로 토큰 검증 후 Zoho로 payload 포워딩
- Worker 환경 변수에 ZOHO_FORM_URL과 TURNSTILE_SECRET_KEY secrets 타입으로 등록
- 폼 action을 Worker URL로 변경하고 cf-turnstile-response 토큰 제거 후 Zoho POST 실행
Impact
Client-only 모드 대비 보안 강도: 브라우저 bot 차단 → 모든 unauthorized 요청 차단으로 전환
Key Takeaway
Client-only 모드는 development용이며 production 필수 요소는 server-side Worker 검증이다. 토큰은 발급 후 5분 내 사용해야 한다.
실천 포인트
Zoho Forms HTML 익스포트 환경에서 spam 봇 방지를 위해 Cloudflare Turnstile을 Client-only 모드로 적용 시 브라우저 기반 bot 제출을 즉시 차단하고, Cloudflare Worker server-side 검증 추가로 모든 unauthorized 폼 제출을 원천 차단할 수 있다