반응형

 

Google Recaptcah.(구글 리캡차) v3 사용 방법에 리뷰를 하려고 한다.

구글 리캡차를 사용하는 이유는

사용자들이 악의적으로 여러개의 글을 쓰는 것을 방지하기 위해서이다.

사이트에서도 Protect your site from spam and abuse. 이렇게 설명하고 있다.

스팸과 어뷰즈를 방지한다고. 어찌되었든 좋은거니깐 추가해보자.

 

Version(버전)

  • Enterprise
  • V3 (내가 선택한 v3)
  • V2 (많이 알려진, 나는 로봇이 아닙니다.)

Enterprise 버전은 가격도 내야하고,

지금 내가 사용하려고 하는 사이트에는 맞지 않다고 생각한다. (유입량이 그렇게 많지가 않다.ㅜㅠ)

 

V2는 '나는 로봇이 아닙니다.' 라는 것으로 유명하다.

지하철/자동차등등 맞는 이미지를 선택하라고...

나는 진짜 로봇이 아닌데, 로봇마냥 그러한 이미지를 선택하는게 너무 귀찮았다.

그래서 최신 버전인 V3를 선택.

 

developers.google.com/recaptcha/docs/v3

 

reCAPTCHA v3  |  Google Developers

reCAPTCHA v3 returns a score for each request without user friction. The score is based on interactions with your site and enables you to take an appropriate action for your site. Register reCAPTCHA v3 keys here. This page explains how to enable and custom

developers.google.com

친절하게도 구글에서 개발문서를 제공해준다.(하지만 영어라는 점...ㅜ.ㅜ)

브라우저에서 번역 버튼을 눌러도,

아직까지는 어눌한 점이 있기에 못하는 영어여도 차근차근 해석하면서 따라해봤다.

 

이제부터 구글 리캡차 사용 방법에 차근차근 설명해보겠다.

 

1. SiteKey, SecretKey 발급

SiteKey(사이트키) / SecrectKey(비밀키)를 발급받기 위해서 아래 계정에서 사이트 계정을 등록해야한다.

 

www.google.com/recaptcha/admin/create

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com

계정을 등록하면, 아래와 같이 사이트키와 비밀키가 발급된다.

 

 

2. Token값 가져오기

1
2
3
4
5
6
7
8
<script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=sitekey"></script>
<script type="text/javascript">
    grecaptcha.ready(function () {
        grecaptcha.execute(sitekey, { action: 'login' }).then(function (token) {
            // hiddle valude에 token값 셋팅
        });
    });
</script>
cs

발급한 사이트키로 js를 load해주고(1번째 라인),

grecaptcha.execute를 실행해서 Token값을 발급받으면 된다.

그때 action값은 내가 수행하고 있는 행동값을 넣어주면 된다.

 

3. Token값 인증하기

사이트키로 받아온 Token값,

그리고 그 Token값과 비밀키를 조합하여 해당 Token값을 인증하는 것이다.

이때, 비밀키값이 노출될 수 있으므로 Backend에서 HttpWebReqeust를 이용해 API를 호출하기를 권장한다.

 

위 문서에서 나온 것을 살짝 정리해봤다.

API URL https://www.google.com/recaptcha/api/siteverify
Method Post 방식
Parameter secret(R) : 비밀키
response(R) : token값
remoteip(O) : 사용자의 아이피

R : Required(필수값)
O : Optional(옵션값)

이때 ContentType을 application/x-www-form-urlencoded 으로 설정해서 호출하자.

Parameter값도 Json Format으로 설정하는 것이 아니라,

Key-Value 형태로 설정해주어야 한다. (ex> secret=abcdedfg&response=1234567 )

나는 응답값이 Json Format으로 넘어온다고 생각해서 모든 것을 Json Format으로 맞춰주었던것 같다. (오류 엄청나서 헤맸어요ㅠ.ㅠ)

 

문서에서 확인할 수 있는 응답값들이다.

그리고 내가 호출해서 성공했을때 응답값이다.

여기서 가장 중요하게 생각되어지는 것은 score 속성인데, 웬만하면 0.9점이 나온다.

아니...테스트 했을때는 항상 0.9점만 나왔다.

 

그래서 궁금해서, 시간이 된다면 이 점수가 언제 다르게 나오는지 궁금해졌다.(꼭 테스트해서 포스팅해보겠다.)

 

이렇게 구글 리캡차 v3에 대해서 작성해보았다.

위에서 말했듯이, 계속 score값이 0.9이 나와서 이게 맞는건지도 어리둥절하다.

그래도 내가 사용하고 있는 사이트를, 스팸과 어뷰징에 대해서 막아준다니 이 것에 대한 효능을 지켜볼 필요가 있을 것 같다.

 

 

반응형

'개발 > 기타' 카테고리의 다른 글

티스토리 ColorScripter 이용해 개발 코드 예쁘게 넣기  (2) 2019.12.05

+ Recent posts