> 백엔드 개발 > PHP 튜토리얼 > 서버 측에서 Google reCAPTCHA v3의 유효성을 어떻게 확인합니까?

서버 측에서 Google reCAPTCHA v3의 유효성을 어떻게 확인합니까?

Susan Sarandon
풀어 주다: 2024-11-03 09:15:29
원래의
601명이 탐색했습니다.

How Do I Validate Google reCAPTCHA v3 on the Server Side?

서버측에서 Google reCAPTCHA v3 사용

Google의 reCAPTCHA v3은 체크박스 기반 이전 버전에 비해 더욱 발전된 봇 감지 방법입니다. 프런트 엔드에서 구현하는 것은 간단하지만 서버 측에서 유효성 검사를 처리하려면 다른 접근 방식이 필요합니다.

지원 중단된 reCAPTCHA v2 유효성 검사

reCAPTCHA v2 검증은 더 이상 v3에 적합하지 않습니다. reCAPTCHA v3은 검증을 위해 추가 매개변수 및 비밀 키와 함께 POST 요청을 사용합니다.

reCAPTCHA v3에 대한 보안 POST 기반 검증

다음은 POST-를 사용하여 수정된 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>
로그인 후 복사

사용

isValid() 함수를 호출하여 reCAPTCHA 토큰을 확인하고 이에 따라 응답을 처리합니다. 예:

<code class="php">if (isValid()) {
    // The user has passed the reCAPTCHA check.
    // ...
} else {
    // The user has failed the reCAPTCHA check.
    // ...
}</code>
로그인 후 복사

보안 참고 사항

검증의 무결성을 보호하려면 POST 요청에 비밀 키를 사용하는 것이 중요합니다. 이 비밀 키를 비공개로 유지하고 공개적으로 노출하지 마세요.

위 내용은 서버 측에서 Google reCAPTCHA v3의 유효성을 어떻게 확인합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿