首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 更多程式設計知識

為網站整合 Google reCAPTCHA 強化表單驗證安全性

     編輯:更多程式設計知識

保護網站表單免受垃圾郵件和機器人攻擊是 Web 開發的基本功課。Google reCAPTCHA 作為業界標準的驗證服務,能有效區分真人用戶與自動化腳本。本文將詳細說明如何在 PHP 架構的網站中完整整合 reCAPTCHA v1(舊版),涵蓋註冊流程、前端嵌入、後端驗證與必要檔案部署。

第一步:申請 API 金鑰對

前往 Google reCAPTCHA 管理後台 登記您的網域,即可取得一組 Public Key(前端顯示用)與 Private Key(後端驗證用)。妥善保管這兩組金鑰,切勿公開 Private Key。

第二步:前端頁面嵌入驗證碼元件

在表單所在的模板檔(例如 report.php)的適當位置插入以下程式碼,將驗證碼圖片與輸入框渲染到頁面:

<tr>
  <td height="23">Captcha</td>
  <td height="23">
    <?php
      require_once('../../../skin/google/recaptchalib.php');
      $publickey = "您的 Public Key";
      echo recaptcha_get_html($publickey);
    ?>
  </td>
</tr>

確認 recaptchalib.php 的相對路徑正確,否則會發生 require_once 失敗。

第三步:後端接收驗證回傳結果

表單送出的目標頁面(如 e/enews/index.php)頂端加入驗證邏輯:

<?php
require_once('../../skin/google/recaptchalib.php');
$privatekey = "您的 Private Key";
$resp = recaptcha_check_answer(
  $privatekey,
  $_SERVER["REMOTE_ADDR"],
  $_POST["recaptcha_challenge_field"],
  $_POST["recaptcha_response_field"]
);
if (!$resp->is_valid) {
  die("Incorrect!!<a href='#' onClick='javascript:history.back(-1);'>Click here to back!</a>" .
      "(reCAPTCHA said: " . $resp->error . ")");
}
?>

驗證失敗時會直接終止腳本並提示錯誤訊息,開發者可依需求改為導向錯誤頁或 AJAX 回傳 JSON 格式錯誤碼。

第四步:部署核心程式庫檔案

從 Google 官方下載 recaptchalib.php,放置於程式碼中 require_once 指定的目錄(範例為 skin/google/)。完成後測試表單送出,確認驗證碼正常顯示且驗證邏輯運作無誤。

後續觀察與維護

上線後持續監控驗證通過率與誤攔截情況。若發現真人用戶頻繁被誤判,可考慮調整風險分析閾值或升級至 reCAPTCHA v2/v3(需重寫整合程式碼)。定期檢查 Google 官方公告,確保使用的 API 版本仍受支援。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved