ホームページ >バックエンド開発 >PHPチュートリアル >PHP での Google reCAPTCHA を使用した認証

PHP での Google reCAPTCHA を使用した認証

WBOY
WBOYオリジナル
2023-06-19 17:38:312016ブラウズ

現代のオンライン世界では、Web サイトのセキュリティとユーザーのプライバシー保護がますます重要なテーマになっています。その中でも、人間と機械の検証という技術的手法は、悪意のある攻撃を防ぐために不可欠な手段の 1 つとなっています。 Google reCAPTCHAは人間と機械の認証に広く使われているツールであり、その概念は人々の心に深く根付いており、私たちが日常的に使用する多くのWebサイトでもその存在を見ることができます。この記事では、PHP での検証に Google reCAPTCHA を使用する方法を説明します。

Google reCAPTCHA の仕組み

Google reCAPTCHA は、もともとカーネギー メロン大学の研究チームによって開発された人間の対ボット コンピューター プログラムでしたが、後に Google によって買収され、改良されました。

この機能は、テキスト、画像、または音声を含む複雑な質問をユーザーに提示し、その質問に答えるように求めることで、Web サイトにアクセスしているのがロボットではなく人間であることを識別します。さらに、Google reCAPTCHAは、ユーザーの行動パターンやブラウザの指紋などの要素に基づいて、訪問者を低リスク、中リスク、高リスクの3つのレベルに分類することもできるため、検証の精度が向上し、悪意のある攻撃を防ぐことができます。

PHP での検証に Google reCAPTCHA を使用する

Google reCAPTCHA を検証に使用する前に、まず Google reCAPTCHA の公式 Web サイト (https://www.google.com/) からダウンロードする必要があります。 recaptcha/about ) 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 公式 Web サイトで申請したサイト キーの 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' ]) を選択し、Google reCAPTCHA の URL への POST リクエストを作成します。リクエスト データには、申請した秘密キーとユーザーが送信した確認コードが含まれています。

次に、file_get_contents() 関数を使用して、POST リクエストを Google reCAPTCHA サーバーに送信し、応答をデコードします。応答の戻り値は JSON 形式のオブジェクトで、成功フィールドはユーザーの確認コードが正しいかどうかを示します。認証コードが正しければユーザー情報がデータベースに挿入されますが、そうでない場合はエラーメッセージが出力されます。

結論

Google reCAPTCHA は、Web サイトに簡単かつ迅速にセキュリティを提供できます。コードに Google reCAPTCHA を実装する場合、数行のコードだけで Web サイトに強力なセキュリティを追加できます。検証の仕組み!

以上がPHP での Google reCAPTCHA を使用した認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。