Last Updated on 5월 19, 2024 by Jade(정현호)
구글에서 제공하는 봇 방지 API
Bot 에 의한 데이터 수집이나 무작위 대입공격(Brute Force Attack) 등을 막기 위해 로그인시 당신은 로봇입니까?
라고 물어보는 reCAPTCHA 를 보셨을 겁니다
로그인 관련된 보안 기능으로 reCAPCHA 는 구글에서 제공하는 봇 방지 API 로 최신버전은 v3 입니다.
[시작전] 해당 글은 Ubuntu 18.04 + Nginx + PHP-FPM + MariaDB 웹 서비스 구성 과 Centos 에 YUM으로 APM 구성 과정의 연재글의 중간글 입니다.
이전 연재글 :Freenom 을 통한 최상위 국가 도메인을 무료로 발급

Google reCAPTCHA 생성
reCAPTCHA 생성 후 phpmyadmin에 등록하도록 하겠습니다.
reCAPTCHA는 아래링크를 통해 바로 생성할 수 있습니다
아래와 같이 라벨, reCAPCHA 유형, 도메인, 소유자의 이메일 주소를 입력하며 버전은 v3 로 합니다.
이전 포스트를 통해서 무료로 도메인 발급 및 서브도메인을 추가 등록하였다면 등록한 서브 도메인(myadmin.주소) 를 입력하면 됩니다
도메인이 없으시면 위의 이전 포스트 를 참조하여 freenom 에서 무료 도메인을 발급받아 사용 해보시면 됩니다 (도메인이 필요 합니다)
생성이 완료되었다면 아래와 같이 사이트 키와 비밀키를 부여받게 됩니다.
PHPMyAdmin 설정
구글 reCAPTCHA 를 등록하여 사이트 키와 비밀키를 받았다면 이번에는 PHPMyAdmin 에 설정을 해야 합니다.
[참고] phpmyadmin 의 설치 및 설정 관련해서는 이전 포스팅을 참조하시면 됩니다.

설치가 된 PHPMyAdmin 디렉토리에서 config.inc.php 파일을 편집기로 오픈 합니다. 그리고 아래의 2개 옵션을 추가합니다.
$cfg[‘CaptchaLoginPublicKey’] = 'Site key'
$cfg[‘CaptchaLoginPrivateKey’] = 'Secret key'
위와 같은 형식을 입력해주면 되며 위에서 받은 site key를 첫번째 라인의 PublicKey 에 입력을 해주고 Secret key 는 두번째 라인인 PrivateKey 에 입력합니다.
그리고 reCAPCHA를 쓰기 위해서는 auth_type 은 cookie 로 사용해야 합니다.
$cfg['Servers'][$i]['auth_type'] = 'cookie';
입력 완료 후 cache 등을 초기화 후 접속해 보면 아래 이미지와 같이 오른쪽 하단에 반응형으로 동작에 대해서 인식을 하고 있는 모습을 확인 할수 있습니다.
reCAPTCHA v3 는 v2와 다르게 사용자를 방해하지 않으며 사용자의 행동(action)을 보고 기계인지 사람인지 판단하는 방법이라고 합니다.
reCAPTCHA v3는 0 ~ 1.0 까지의 점수를 서버에 보내주는데 0에 가까울수록 기계 가깝다는 뜻이고 1에 가까울수록 사람에 가깝다고 알려주는 형태로 bot 을 막는다고 합니다.
관련된 추가 포스팅
- 2차 인증인 OTP 를 사용하여 로그인 보안 설정

이어지는 다음 글
오라클 클라우드 프리티어 - CentOS 환경 연재글을 보신 경우 아래 포스팅을 이어서 보시면 됩니다.

AWS 프리티어 - 우분투 환경에서 Nginx PHP MariaDB 연재 글을 보신 경우 아래 포스팅을 이어서 보시면 됩니다.


Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io