자동 가입 방지 구글 리캡차 V3 테스트 샘플
V3는 점수방식으로 처리하는것으로 우리가 흔히 보는것과 다릅니다. 그래서 익숙하지 않아 사용하게 되면 v2를 사용하게 될것 같습니다.
캡차의 목적은 자동으로 뭔가를 하지 못하게 하는데 있습니다. 지능이 있는 사람은 통과 하지만 지능이 없는 단순 자동화 되어 있는 프로그램은 통과 하지 못하게 하는것입니다.
먼저 구글에 로그인 한 다음 아래 사이트에서 구글 리캡차 V3 키를 받아야 합니다.
* 사이트키와 비밀키가 필요 한데 받는 방법은 아래 참고 사이트를 보시면 됩니다.
https://www.google.com/recaptcha
1) 아래는 클라이언트에서 필요한 것입니다. 사이트키가 있어야 합니다.
<script>
grecaptcha.ready(function() {
grecaptcha.execute('사이트키', {action: 'homepage'}).then(function(token) {
document.getElementById('g-recaptcha').value = token;
});
});
</script>
<div>
<form name="f" method="post" enctype="multipart/form-data" action="<?=$PHP_SELF?>">
<input type="hidden" id="g-recaptcha" name="g-recaptcha">
<input type="submit">
</form>
</div>
2) 아래는 클라이언트에서 서버로 보냈을대 처리 하는 방식입니다. 비밀키가 필요 합니다.
$captcha = $_POST['g-recaptcha'];
$secretKey = '비밀키';
$ip = $_SERVER['REMOTE_ADDR'];
$data = array( 'secret' => $secretKey, 'response' => $captcha, 'remoteip' => $ip );
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
$responseKeys = json_decode($response, true);
if ($responseKeys["success"]) {
echo "[성공] 통과";
} else {
echo "통과 실패";
}
* 단순 이미지만 필요 하다면 아래를 참고하세요.
자동글쓰기 방지 이미지 만들기 - 캡차 > PHP (pabburi.co.kr)
* 구글 리캡차 V2버전은 아래를 참고하세요.
우리가 가장 흔하게 볼 수 있는 방식입니다. 소화기를 선택해 주세요.
자동 글쓰기 방지 구글 리캡차 V2 테스트 샘플 > PHP (pabburi.co.kr)
* 캡차 참고한것
사실상 그대로 복사하여 잘 되는지 확인한 곳.