Google reCAPTCHA 개요
Google reCAPTCHA는 스팸 및 조작으로부터 웹사이트를 보호하기 위해 Google에서 제공하는 유무료 서비스로, 웹사이트와 인터랙션하고 있는 사용자가 봇이 아닌 실제 사람인지 확인해주는 일종의 공개 튜링 테스트입니다. reCAPTCHA의 주요 목적은 각종 문의 양식을 통해 스팸을 전송하거나 웹사이트 내에서 악의적인 활동을 하는 악성 스팸 봇을 차단하는 것입니다.
잘 알려진 reCAPTCHA의 방식은 사진 속 특정 물체 식별하기, 뒤틀린 텍스트 입력하기, 로봇이 아니라는 문장에 확인 체크하기 등 사람은 풀기 쉽지만 자동화된 봇은 해낼 수 없는 까다로운 문제를 사용자에게 제시하는 것입니다. 이러한 과제를 수행함으로써 사용자는 자신이 인간임을 증명하고 웹사이트나 특정 콘텐츠에 액세스할 수 있는 권한을 얻게 됩니다.
Google reCAPTCHA에는 다음과 같은 3가지 버전이 있습니다.
- reCAPTCHA v2: v2 버전에서는 보안 문자를 사용하여 봇을 가려냅니다. 이를테면, 사용자가 로봇이 아님을 확인하기 위해 확인란을 체크하도록 한다거나 사진 속 물체를 식별하는 등의 과제가 주어집니다. 이 과제들을 완료하면 사람으로 간주되어 액세스 권한이 주어집니다.
- reCAPTCHA v3: v3 버전에서는 점수를 사용하여 봇을 가려냅니다. v2와 달리 사용자와의 구체적인 인터랙션 없이 백그라운드에서만 작동하며 마우스 움직임, 검색 패턴 등 다양한 요소를 기반으로 사용자의 인터랙션을 채점하는 방식입니다. 웹사이트는 이렇게 획득한 점수를 사용하여 사용자가 사람인지 봇인지 구분하고 그에 맞는 조치를 취하게 됩니다. 이러한 판단의 기준 점수인 점수 임계값을 0.0부터 1.0까지로 설정할 수 있으며, 사용자가 획득한 점수가 이 임계값보다 낮을 때 봇이 아닌 사람으로 간주되는 것이므로 임계값이 낮게 설정될 수록 통과 기준은 까다로워지는 셈입니다.
- reCAPTCHA Enterprise: 기업 및 대규모 애플리케이션을 위해 설계된 reCAPTCHA v2, v3의 유료 버전입니다. 봇 탐지, 사용자 지정 및 관리를 위한 고급 기능을 추가로 제공합니다.
전반적으로 reCAPTCHA는 웹사이트를 스팸 및 조작으로부터 보호해주고, 봇은 차단하되 사람은 무사히 액세스할 수 있도록 함으로써 웹사이트가 더 나은 사용자 경험을 제공할 수 있도록 도와줍니다.
Google reCAPTCHA 생성하기
Google reCAPTCHA 웹사이트로 이동합니다.
https://www.google.com/recaptcha/about/

reCAPTCHA를 생성하기 위해 v3 Admin Console을 클릭하고 Google 계정으로 로그인합니다.

새 사이트 등록 화면이 열리면 유료인 Enterprise 모드가 기본으로 나오기 때문에, 굳이 Enterprise를 사용할 것이 아니라면 반드시 ‘Switch to create a classic key’를 클릭하여 무료 버전인 기존 모드로 전환한 후 시작하도록 합니다.

기존에 등록한 사이트가 있는 경우 Admin 화면이 먼저 나오는데, 이 때는 우측 상단의 + 표시를 누르면 새 사이트 등록 화면이 열립니다. 일반 웹사이트용 reCAPTCHA는 현재 v2와 v3가 지원되며, 둘 중 어떤 버전을 선택할지는 웹사이트의 구체적인 요구 사항과 선호도에 따라 달라질 수 있습니다.
1. Google reCAPTCHA v3

- 라벨: 한 개의 Google 계정 아래 여러 개의 reCAPTCHA를 생성할 수 있으므로 추후 관리할 때 구별하기 쉽도록 직관적인 라벨명을 입력합니다. 주로 웹사이트 이름을 입력하는 경우가 많습니다.
- reCAPTCHA 유형: reCAPTCHA v3를 선택합니다. v3는 사용자와의 인터랙션 없이 일방적으로 사용자 행동을 파악 및 측정하여 채점하는 방식 한 가지 뿐이고 별도의 옵션은 없습니다.
- 도메인: reCAPTCHA로 보호할 웹사이트 도메인을 입력합니다.
- 소유자: 로그인한 Google 계정이 기본 소유자로 나옵니다. 소유자를 추가 등록하려면 이메일 주소를 입력하여 추가합니다.
reCAPTCHA 서비스 약관에 동의하고, 소유자에게 알림 발송 옵션을 선택한 후 ‘제출’ 버튼을 클릭하면 reCAPTCHA가 생성됩니다.

사이트가 등록되면 사이트 키와 비밀 키가 생성됩니다. 웹사이트에 reCAPTCHA를 적용하려면 이 두 종류의 키가 모두 필요합니다.
2. Google reCAPTCHA v2

- 라벨: 한 개의 Google 계정 아래 여러 개의 reCAPTCHA를 생성할 수 있으므로 추후 관리할 때 구별하기 쉽도록 직관적인 라벨명을 입력합니다. 주로 웹사이트 이름을 입력하는 경우가 많습니다.
- reCAPTCHA 유형: reCAPTCHA v2를 선택하고 하위 옵션을 선택해줍니다. ‘표시되지 않는 reCAPTCHA 배지’의 경우는 사용자 인터랙션 없이 백그라운드에서 작동하는 v3와 유사해보이지만, v2는 양식 제출이나 버튼 클릭 같은 특정 사용자 작업이 트리거될 때 확인 프로세스가 백그라운드에서 자동으로 발생하면서 사용자 적법성을 확인하는 반면, v3는 항상 백그라운드에서 작동하고 있으면서 웹사이트 내에서 사용자 행동을 전체적으로 파악하고 분석하여 채점하는 방식으로 진행된다는 차이점이 있습니다. ‘로봇이 아닙니다’ 체크박스 옵션에 비해 사용자 경험 면에서는 우수하지만, 구현하는데 얼마간의 코딩 작업이 요구되며 실제로 사람이 체크를 해야 진행되는 방식에 비해 보안의 민감도가 떨어질 수 있습니다.
- 도메인: reCAPTCHA로 보호할 웹사이트 도메인을 입력합니다.
- 소유자: 로그인한 Google 계정이 기본 소유자로 나옵니다. 소유자를 추가 등록하려면 이메일 주소를 입력하여 추가합니다.
reCAPTCHA 서비스 약관에 동의하고, 소유자에게 알림 발송 옵션을 선택한 후 ‘제출’ 버튼을 클릭하면 reCAPTCHA가 생성됩니다.

사이트가 등록되면 사이트 키와 비밀 키가 생성됩니다. 웹사이트에 Google reCAPTCHA를 적용하려면 이 두 종류의 키가 모두 필요합니다.
Google reCAPTCHA 웹사이트에 적용하기
웹사이트를 등록한 후 생성된 reCAPTCHA 키를 웹사이트에 적용하는 방법은 기본적으로 웹사이트의 워드프레스 소스 코드 내에 삽입하는 것이며, 해당 매뉴얼은Google reCAPTCHA 웹사이트에 상세히 나와있습니다.
- reCAPTCHA 적용 매뉴얼
v2 ‘체크박스’ 구현 매뉴얼
v2 ‘보이지 않는 배지’ 구현 매뉴얼
v3 구현 매뉴얼
하지만, 요즘은 워드프레스의 양식 플러그인이라든지 다양한 빌더의 양식 모듈에도 손쉽게 reCAPTCHA를 연동할 수 있는 옵션이 거의 기본값으로 구현되어 있기 때문에, 이를 이용하면 웹사이트에 간단히 Google reCAPTCHA를 적용할 수 있습니다. 세부적인 옵션으로 들어가면, 소스 코드 내에 삽입하는 방식에 비해 양식 플러그인에서 연동하는 것에 얼마간의 제한이 있을 수 있지만, reCAPTCHA의 보안 기능을 사용하는 데 있어서는 전혀 차이가 없습니다.

WPForms 플러그인에 생성한 reCAPTCHA를 연결해보겠습니다.

워드프레스 관리자 대시보드 [WPForms] – [설정 Settings]에서 CAPTCHA 탭으로 이동하면 몇 종류의 CAPTCHA 목록이 나옵니다. 여기서 우리가 설정하려는 reCAPTCHA를 클릭합니다.

Type에서 reCAPTCHA v2의 체크박스 유형을 선택, 생성한 사이트 키와 비밀 키를 복사해서 넣고 ‘Save Settings’ 버튼을 클릭하여 설정한 내용을 저장해줍니다. 사이트 키와 비밀 키가 성공적으로 연동되면 저장 후 Preview 섹션에 reCAPTCHA의 미리보기가 나옵니다. 체크박스 유형의 reCAPTCHA 미리보기가 성공적으로 로딩되었습니다.

사이트 키와 비밀 키를 확인하기 위해서는 reCAPTCHA Admin 콘솔로 이동하여 적용할 reCAPTCHA의 라벨을 선택한 후 우측 상단의 ‘설정’ 버튼을 클릭합니다.

위와 같이 ‘reCAPTCHA 키’를 클릭한 후 사이트 키와 비밀 키를 각각 복사하여 필요한 곳에 붙여넣으시면 됩니다.

WPForms에 reCAPTCHA를 연동하였으니, 이제 원하는 개별 양식에 reCAPTCHA를 활성화해보겠습니다.

[WPForms] – [All Forms]에서 reCAPTCHA를 적용할 양식에 마우스 오버 ‘Edit’를 클릭합니다.

좌측에서 ‘Settings’ 메뉴를 클릭하고 ‘Spam Protection and Security’로 이동하면 CAPTCHA 기능을 활성화하는 섹션이 나옵니다. 여기에서 미리 연동해놓은 Google Checkbox v2 reCAPTCHA를 활성화해주고, 우측 상단에서 ‘Save’ 버튼을 클릭합니다.

그리고 이제 해당 양식이 들어있는 페이지로 와서 새로고침을 하면 I’m not a robot 체크박스가 함께 나타나는 것을 볼 수 있습니다. I’m not a robot이라는 글을 읽고 체크박스에 체크를 하는 것은 사람만이 할 수 있는 작업이므로, 이제 양식이 등록될 때 여기에 체크가 되어 있지 않으면 스팸 봇으로 간주하여 등록을 차단하게 됩니다.
기타 다른 양식 플러그인이나 웹사이트 빌더가 제공하는 양식 모듈에도 대부분 Google reCAPTCHA 연동 기능이 포함되어 있으므로 굳이 소스 코드를 수정하지 않아도 이런 식으로 플러그인이나 모듈 설정에서 간단히 reCAPTCHA를 연동하여 활성화할 수 있습니다.
