サーバー側で Google reCAPTCHA v3 を確認するにはどうすればよいですか?
P粉904191507
2023-08-27 16:48:47
<p>チェックボックスを使用して新しい Google Captcha を設定したところ、フロントエンドでは正常に動作しましたが、PHP を使用してサーバー側でこれを処理する方法がわかりません。以下の古いコードを使用してみましたが、検証コードが無効であるにもかかわらずフォームが送信されてしまいます。 </p>
<pre class="brush:php;toolbar:false;">require_once('recaptchalib.php');
$privatekey = "私のキー";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
$errCapt='<p style="color:#D6012C ">CAPTCHA コードが正しく入力されませんでした。</p>';}</pre>
<p><br /></p>
秘密キーのセキュリティ
ここでの答えは確かに機能しますが、
GET
リクエストを使用しており、これにより秘密鍵が公開されます (https
を使用した場合でも)。 Google Developers では、指定されたメソッドはPOST
です。詳細: https://stackoverflow.com/a/323286/1680919
POST経由で確認
リーリー配列構文: 「新しい」配列構文 (
array(..)
の代わりに[
および]) を使用します。 。お使いの php のバージョンがこれをまだサポートしていない場合は、これら 3 つの配列定義をそれに応じて編集する必要があります (コメントを参照)。
戻り値: ユーザーが有効な場合、この関数は
と記述するだけで使用できます。true
を返し、無効な場合はfalse
を返し、ユーザーが有効な場合は、エラーが発生した場合はnull
を返します。たとえば、if (isValid()) { ... }
これが解決策です
index.html
リーリーverification.php
リーリーhttp://codeforgeek.com/2014/12/google-recaptcha-tutorial /