Heim >Backend-Entwicklung >PHP-Tutorial >Authentifizierung mit Google reCAPTCHA in PHP

Authentifizierung mit Google reCAPTCHA in PHP

WBOY
WBOYOriginal
2023-06-19 17:38:312016Durchsuche

In der modernen Online-Welt werden Website-Sicherheit und der Schutz der Privatsphäre der Benutzer immer wichtiger. Unter ihnen ist die technische Methode der Mensch-Maschine-Verifizierung zu einer der unverzichtbaren Methoden zur Verhinderung böswilliger Angriffe geworden. Google reCAPTCHA ist ein weit verbreitetes Tool zur Mensch-Maschine-Verifizierung. Sein Konzept ist tief in den Herzen der Menschen verankert und seine Präsenz ist sogar auf vielen Websites zu sehen, die wir täglich nutzen. In diesem Artikel erfahren Sie, wie Sie Google reCAPTCHA zur Verifizierung in PHP verwenden.

So funktioniert Google reCAPTCHA

Google reCAPTCHA war ursprünglich ein menschliches Anti-Bot-Computerprogramm, das von einem Forschungsteam an der Carnegie Mellon University entwickelt und später von Google übernommen und verbessert wurde.

Es funktioniert, indem es dem Benutzer eine komplexe Frage mit Text, Bildern oder Audio zeigt und den Benutzer auffordert, die Frage zu beantworten, wodurch erkannt wird, dass ein Mensch die Website besucht und kein Roboter. Darüber hinaus kann Google reCAPTCHA Besucher anhand von Faktoren wie Benutzerverhaltensmustern und Browser-Fingerabdrücken in drei Stufen einteilen: geringes Risiko, mittleres Risiko und hohes Risiko, wodurch die Genauigkeit der Überprüfung verbessert und böswillige Angriffe verhindert werden.

Verwendung von Google reCAPTCHA zur Verifizierung in PHP

Bevor wir Google reCAPTCHA zur Verifizierung verwenden, müssen wir einen reCAPTCHA-Site-Schlüssel und einen geheimen Schlüssel beantragen. Der Site-Schlüssel wird verwendet, um Verifizierungsinformationen auf der Benutzerseite anzuzeigen, und der geheime Schlüssel wird verwendet, um die vom Benutzer übermittelten Informationen im Hintergrund zu überprüfen. Diese Informationen sind für die Nutzung von reCAPTCHA erforderlich und wir müssen sie ordnungsgemäß aufbewahren.

Als nächstes konzentrieren wir uns auf die Verwendung von Google reCAPTCHA zur Verifizierung in PHP. Nehmen wir als Beispiel ein einfaches Registrierungsformular, bei dem der Benutzer zur Registrierung einen Benutzernamen, ein Passwort und einen Bestätigungscode eingeben muss. Die spezifischen Schritte sind wie folgt:

  1. Einbetten des JavaScript-Codes von Google reCAPTCHA in 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>

Der obige Code führt die JavaScript-Datei von Google reCAPTCHA ein und fügt eine Klasse von „g-recaptcha“- und data-sitekey-Attributen hinzu Das Formular Der Wert ist das div-Element des Site-Schlüssels, den wir auf der offiziellen reCAPTCHA-Website beantragt haben. Wir betten dieses Element in das Formular ein, sodass, wenn der Nutzer auf die Schaltfläche „Registrieren“ klickt, die Verifizierungsfunktion von Google reCAPTCHA ausgelöst wird, um die Beurteilung, ob der Nutzer ein Mensch ist, zu vervollständigen.

  1. Überprüfen Sie, ob der Bestätigungscode korrekt ist
<?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 "验证码出错,请检查输入";
    }
}
?>

Im obigen Code erhalten wir im registrierten PHP-Verarbeitungsskript zunächst den Benutzernamen, das Passwort und den vom Benutzer eingegebenen reCAPTCHA-Bestätigungscode (d. h. $_POST ['username'] , $_POST['password'] und $_POST['g-recaptcha-response']) und erstellen Sie dann den POST Anfrage an die URL von Google reCAPTCHA, die Anfragedaten umfassen den von uns beantragten Geheimschlüssel und den vom Nutzer übermittelten Bestätigungscode. $_POST['username']$_POST['password']$_POST['g-recaptcha-response']),然后构造POST请求到Google reCAPTCHA的URL中,其中请求数据中包含了我们申请到的Secret Key和用户提交的验证码。

接下来,我们使用file_get_contents()

Als nächstes verwenden wir die Funktion file_get_contents(), um eine POST-Anfrage an den Google reCAPTCHA-Server zu senden und die Antwort zu dekodieren. Der Rückgabewert der Antwort ist ein Objekt im JSON-Format, in dem das Erfolgsfeld angibt, ob der Bestätigungscode des Benutzers korrekt ist. Wenn der Verifizierungscode korrekt ist, werden die Benutzerinformationen in die Datenbank eingefügt; andernfalls wird eine Fehlermeldung ausgegeben.

Fazit

Google reCAPTCHA kann einfach und schnell Sicherheit für die Website bieten. Wenn wir Google reCAPTCHA im Code implementieren, benötigen wir nur wenige Codezeilen, um unserer Website einen leistungsstarken Überprüfungsmechanismus hinzuzufügen! 🎜

Das obige ist der detaillierte Inhalt vonAuthentifizierung mit Google reCAPTCHA in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn