>백엔드 개발 >PHP 튜토리얼 >PHP에서 Google reCAPTCHA를 사용한 인증

PHP에서 Google reCAPTCHA를 사용한 인증

WBOY
WBOY원래의
2023-06-19 17:38:312018검색

현대 온라인 세계에서 웹사이트 보안과 사용자 개인정보 보호는 점점 더 중요한 주제가 되고 있습니다. 그 중 인간-기계 검증이라는 기술적 방법은 악의적인 공격을 방지하는 데 없어서는 안 될 방법 중 하나가 되었습니다. Google reCAPTCHA는 인간-기계 검증에 널리 사용되는 도구입니다. 그 개념은 사람들의 마음속에 깊이 뿌리박혀 있으며, 우리가 매일 사용하는 많은 웹사이트에서도 그 존재를 볼 수 있습니다. 이 기사에서는 PHP에서 확인을 위해 Google reCAPTCHA를 사용하는 방법을 살펴보겠습니다.

Google reCAPTCHA 작동 방식

Google reCAPTCHA는 원래 Carnegie Mellon University의 연구팀이 개발한 인간 안티 봇 컴퓨터 프로그램으로 나중에 Google에 인수되어 개선되었습니다.

텍스트, 이미지 또는 오디오가 포함된 복잡한 질문을 사용자에게 보여주고 사용자에게 대답을 요구함으로써 로봇이 아닌 인간이 웹사이트를 방문하고 있음을 식별하는 방식으로 작동합니다. 또한 Google reCAPTCHA는 사용자 행동 패턴, 브라우저 지문 등의 요소를 기반으로 방문자를 저위험, 중간 위험, 고위험의 세 가지 수준으로 분류하여 검증의 정확성을 높이고 악의적인 공격을 예방할 수도 있습니다.

PHP에서 확인을 위해 Google reCAPTCHA를 사용하세요

Google reCAPTCHA를 사용하여 확인하기 전에 reCAPTCHA 사이트 키와 비밀 키를 신청해야 합니다. 사이트 키는 사용자 측에서 확인 정보를 표시하는 데 사용되고, 비밀 키는 사용자가 제출한 정보를 백그라운드에서 확인하는 데 사용됩니다. 이 정보는 reCAPTCHA를 사용하기 위해 꼭 필요한 정보이며, 올바르게 보관해야 합니다.

다음으로 PHP에서 Google reCAPTCHA를 사용하여 인증하는 방법에 중점을 두겠습니다. 사용자가 등록하려면 사용자 이름, 비밀번호 및 확인 코드를 입력해야 하는 간단한 등록 양식을 예로 들어 보겠습니다. 구체적인 단계는 다음과 같습니다.

  1. Google reCAPTCHA의 JavaScript 코드를 HTML에 삽입
<head>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
    <form>
        <!--其他表单元素-->
        <div class="g-recaptcha" data-sitekey="在这里填入你的Site Key"></div>
        <button type="submit" name="submit">注册</button>
    </form>
</body>

위 코드는 Google reCAPTCHA의 JavaScript 파일을 소개하고 "g-recaptcha" 클래스 및 data-sitekey 속성을 추가합니다. 형식 값은 reCAPTCHA 공식 웹사이트에서 신청한 사이트 키의 div 요소입니다. 이 요소를 양식에 삽입하여 사용자가 "등록" 버튼을 클릭하면 Google reCAPTCHA의 확인 기능이 실행되어 사용자가 사람인지 여부를 판단합니다.

  1. 인증코드가 맞는지 확인
<?php
if(isset($_POST['submit'])){//当用户按下注册按钮
    $username = $_POST['username'];
    $password = $_POST['password'];
    $captcha = $_POST['g-recaptcha-response'];
    
    $url = "https://www.google.com/recaptcha/api/siteverify";//Google reCAPTCHA的工作URL
    $data = array(
        'secret' => '在这里填入你的Secret Key',
        'response' => $captcha
    );
    $options = array(
        'http' => array(
            'header' => "Content-type: application/x-www-form-urlencoded
",
            'method' => 'POST',
            'content' => http_build_query($data)
        )
    );
    $context = stream_context_create($options);
    $result = file_get_contents($url, false, $context);//向Google服务器发送POST请求

    $response = json_decode($result);//解码JSON响应
    if($response->success){//如果验证码正确
        //将用户信息插入数据库
    }
    else{
        echo "验证码出错,请检查输入";
    }
}
?>

위 코드에서 등록된 PHP 처리 스크립트에서 먼저 사용자가 입력한 사용자 이름, 비밀번호, reCAPTCHA 인증코드(예: $_POST)를 얻어옵니다. ['username'] , $_POST['password']$_POST['g-recaptcha-response']), 그런 다음 POST를 구성합니다. Google reCAPTCHA URL로 요청하면 요청 데이터에는 우리가 신청한 비밀 키와 사용자가 제출한 인증 코드가 포함됩니다. $_POST['username']$_POST['password']$_POST['g-recaptcha-response']),然后构造POST请求到Google reCAPTCHA的URL中,其中请求数据中包含了我们申请到的Secret Key和用户提交的验证码。

接下来,我们使用file_get_contents()

다음으로 file_get_contents() 함수를 사용하여 Google reCAPTCHA 서버에 POST 요청을 보내고 응답을 디코딩합니다. 응답의 반환 값은 JSON 형식 개체이며, 성공 필드는 사용자의 확인 코드가 올바른지 여부를 나타냅니다. 인증 코드가 정확하면 사용자 정보가 데이터베이스에 삽입되고, 그렇지 않으면 오류 메시지가 출력됩니다.

결론

Google reCAPTCHA는 코드에 Google reCAPTCHA를 구현하는 경우 웹사이트에 강력한 확인 메커니즘을 추가하기 위해 몇 줄의 코드만 있으면 웹사이트에 대한 보안을 간단하고 빠르게 제공할 수 있습니다. 🎜

위 내용은 PHP에서 Google reCAPTCHA를 사용한 인증의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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