> 백엔드 개발 > PHP 튜토리얼 > PHP를 사용하여 서버 측에서 Google reCAPTCHA v3의 유효성을 검사하는 방법은 무엇입니까?

PHP를 사용하여 서버 측에서 Google reCAPTCHA v3의 유효성을 검사하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-01 09:44:43
원래의
465명이 탐색했습니다.

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

PHP의 서버측에서 Google reCAPTCHA v3 유효성 검사

배경:

Google reCAPTCHA v3은 다음의 향상된 버전입니다. 스팸 및 남용을 방지하는 데 사용되는 인기 있는 CAPTCHA 시스템입니다. 기계 학습 모델을 사용하여 사용자 행동을 분석하고 단순한 시도-응답 메커니즘이 아닌 위험 분석 점수를 제공합니다.

서버 측 검증:

검증하려면 PHP를 사용하는 서버측 reCAPTCHA v3에서는 다음을 수행해야 합니다. 단계:

  1. POST 데이터 검색:

    • POST 데이터에서 'g-recaptcha-response' 값을 추출합니다. 클라이언트 측 양식 제출하세요.
  2. 요청 매개변수 설정:

    • 비밀 키인 'g-recaptcha-response' 값을 지정하세요. , 그리고 클라이언트의 IP 주소 array.
  3. HTTP 요청 준비:

    • 지정된 요청 방법, 헤더 및 POST를 사용하여 HTTP 컨텍스트를 생성합니다. data.
  4. 요청 실행:

    • reCAPTCHA에 요청을 보내려면 HTTP 컨텍스트와 함께 file_get_contents()를 사용하세요. API.
  5. 응답 구문 분석:

    • reCAPTCHA에서 받은 JSON 응답을 디코딩하고 '성공'을 추출합니다.
  6. reCAPTCHA 유효성 검사:

    • '성공'이 'true'인 경우 'true'를 반환하고 ' 거짓' 그렇지 않은 경우.

예제 코드:

<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()) {
    // User passed reCAPTCHA
} else {
    // User failed reCAPTCHA
}</code>
로그인 후 복사

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

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