快速答案:表單被機器人灌資料,最有效的是加 Google reCAPTCHA(或 Cloudflare Turnstile)再加一個蜜罐欄位;註冊表單則要關掉「任何人均可註冊」或改成需審核。多數表單外掛內建這些選項,設定十分鐘就能擋掉大部分。
為什麼會這樣 #
公開的表單網址被機器人掃到後,就會自動填寫送出;WordPress 預設的註冊頁如果開放,也會被大量假帳號註冊。垃圾表單除了吵,還會撐大資料庫、被拿來試探漏洞,假帳號更可能被用來寄垃圾信。這不是你的網站特別倒楣,是所有公開表單都會遇到的事。
怎麼處理 #
- 到 Google reCAPTCHA 管理頁申請金鑰,填你的網域,選 v2「我不是機器人」勾選框或 v3 隱形版;或改用 Cloudflare Turnstile。
- 填到表單外掛:Gravity Forms → 設定 → reCAPTCHA;Contact Form 7 → 整合;WPForms → 設定 → CAPTCHA;Elementor → 設定 → 整合。有些外掛還要在表單裡手動拖一個 reCAPTCHA 欄位。
- 開蜜罐(honeypot):多數表單外掛設定裡有「防垃圾」選項,勾起來就是一個人看不到、機器人會填的隱藏欄位。
- 註冊灌帳號:設定 → 一般,取消「任何人均可註冊」;必須開放註冊的站,用 WooCommerce 或會員外掛的註冊表單,同樣加驗證並開 email 驗證。
- 已經進來的垃圾資料從表單紀錄批次刪除;假帳號從使用者列表依註冊日期篩選後刪除,刪之前確認沒有訂單關聯。
- 加完一定自己填一次。金鑰網域填錯、v2 與 v3 選錯,會連真人都送不出去。
我們實際遇過的情況 #
一家美業服務站的客人反映表單每天進大量亂碼資料,加上「我不是機器人」勾選框後幾乎歸零。一家電商每天收到大量「新會員加入」通知,全是假帳號,處理順序見每天大量假帳號註冊怎麼擋。
一個教育機構網站的 reCAPTCHA 忽然不能用,原因是金鑰綁的網域跟現在的網址不同(中間改過網域),重新申請一組就好。也有站在更換表單外掛時順便換成 Gravity Forms 加 reCAPTCHA,因為原本的表單防護選項太少。
什麼時候該找人 #
垃圾資料裡夾帶程式碼或奇怪連結、後台多出不認識的管理員、或網站開始對外寄出垃圾信,這已經是資安事件,加驗證擋不住,要先做入侵檢查。
WPTOOLBEAR網站工具熊