>  기사  >  백엔드 개발  >  PHP를 사용하여 서버 측에서 Google reCAPTCHA v3를 확인하는 방법은 무엇입니까?

PHP를 사용하여 서버 측에서 Google reCAPTCHA v3를 확인하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 05:10:27485검색

How to Verify Google reCAPTCHA v3 on the Server Side with PHP?

PHP를 사용하여 서버 측에서 Google reCAPTCHA v3 확인

새로운 Google reCAPTCHA 확인란은 프런트 엔드에 원활하게 통합되지만 서버는- PHP를 사용한 측면 처리는 문제가 발생할 수 있습니다. 서버에서 효과적으로 처리하려면 이전 reCAPTCHA 버전과의 주요 차이점을 이해하는 것이 중요합니다.

이전 reCAPTCHA 유효성 검사

질문에서 제공된 코드 스니펫은 이를 보여줍니다. 이전 reCAPTCHA 버전에 사용된 접근 방식입니다. 그러나 reCAPTCHA v3에는 적합하지 않습니다.

<code class="php">require_once('recaptchalib.php');
// ...
if (!$resp->is_valid) {
  $errCapt = '<p style="color:#D6012C ">The CAPTCHA Code was not entered correctly.</p>';
}</code>

보안 고려 사항

해당 솔루션에서 사용되는 GET 요청 방법이 개인 키를 노출한다는 점은 주목할 가치가 있습니다. 보안 강화를 위해 대신 POST 요청을 사용하는 것이 좋습니다.

POST를 통해 reCAPTCHA v3 확인

PHP를 사용하여 서버 측에서 reCAPTCHA v3을 성공적으로 확인하려면 다음 단계를 따르세요. :

<code class="php">function isValid() 
{
    try {

        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = ['secret'   => '[YOUR SECRET KEY]',
                 'response' => $_POST['g-recaptcha-response'],
                 'remoteip' => $_SERVER['REMOTE_ADDR']];
                 
        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data) 
            ]
        ];
    
        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return json_decode($result)->success;
    }
    catch (Exception $e) {
        return null;
    }
}</code>

이 함수는 사용자가 reCAPTCHA 테스트를 성공적으로 통과한 경우 true를 반환하고, false를 반환합니다. 그렇지 않으면 오류가 발생하면 null입니다. 이 기능을 사용하면 효율적으로 사용자를 인증하고 스팸 및 봇 활동을 완화할 수 있습니다.

위 내용은 PHP를 사용하여 서버 측에서 Google reCAPTCHA v3를 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.