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

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

Linda Hamilton
Linda Hamilton원래의
2024-10-31 13:18:02943검색

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

PHP의 서버 측에서 Google reCAPTCHA v3을 확인하는 방법

문제: 프런트 엔드에 있지만 서버 측에서 유효성을 검사하는 데 어려움을 겪고 있습니다. 보안 문자가 유효하지 않은 경우에도 양식이 제출됩니다.

해결 방법:

서버 측에서 Google reCAPTCHA v3 유효성 검사를 효과적으로 처리하려면 POST 요청을 사용하는 것이 중요합니다. . 해결 방법은 다음과 같습니다.

<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() 함수는 POST 요청을 사용하여 reCAPTCHA v3를 확인하도록 제작되었습니다.
  • 비밀키, 보안문자 응답, 사용자의 IP 주소를 Google의 API로 보냅니다.
  • 이 함수는 API의 응답을 구문 분석하여 보안문자가 유효하면 true, 유효하지 않으면 false, 오류이면 null을 반환합니다. 요청 중에 발생합니다.

사용법:

코드에 다음과 같이 간단히 작성하세요.

if (isValid()) {
  // The user has passed the captcha validation.
} else {
  // The user has failed the captcha validation.
}

참고: 제공된 코드 조각에서 [YOUR SECRET KEY]를 실제 reCAPTCHA 비밀 키로 바꾸십시오.

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

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