2020-10-04 / 閱讀時間 14 分鐘

我不是機器人,在WordPress網站加入Google reCAPTCHA

在網站上送出表單、發布留言、登入會員前,時常必須勾選「我不是機器人」的選項後,才能完成正在執行的動作。這個其實是Google於2012年所發佈的驗證服務Google reCAPTCHA v2,透過區分機器人和人類來保護網站免於惡意程式的攻擊。隨著技術的進步,Google在2018年改良了驗證機制,發布了Google reCAPTCHA v3,更在2020年發布了企業級應用Google reCAPTCHA Enterprise。本文將逐一介紹這些reCAPTCHA服務,並說明如何將reCAPTCHA導入WordPress網站中。

什麼是Google reCAPTCHA?

若網站上存在表單、留言、登入、註冊等功能,容易成為惡意程式濫用、詐欺行為的目標,造成不良影響。為了防範這樣的問題,我們一般會在網站上加入驗證機制,Google提供的reCAPTCHA服務即為其中一種驗證方式。根據Google的官方說明,reCAPTCHA透過進階風險分析引擎和設置挑戰來區別機器人與人類,進而保護網站免於惡意程式的侵擾。下圖為reCAPTCHA v2的「我不是機器人」核取方塊。

Google reCAPTCHA v2 我不是機器人

CAPTCHA和reCAPTCHA

在Google搜尋reCAPTCHA時,可能會出現CAPTCHA和reCAPTCHA兩種結果,也因此時常造成理解上的混亂。CAPTCHA是較早出現的驗證機制,而reCAPTCHA則為CAPTCHA的延伸,目前網路上以reCAPTCHA較為常見。在本段落中,FirstHatch一起孵將分別說明CAPTCHA和reCAPTCHA。

CAPTCHA

CAPTCHA為Completely Automated Public Turing test to tell Computers and Humans Apart的說寫,中文為全自動公開化圖林測驗人機辨識。CAPTCHA的常見形式為扭曲英文字母的圖像,由於電腦無法判斷文字內容,僅能被人類所辨識,故可用來區別使用者是機器人還是人類。

CAPTCHA

reCAPTCHA

reCAPTCHA最初是卡內基美隆大學的研究員所提出的計畫,透過將書本中無法被光學圖像辨識技術識別的文字內容置入CAPTCHA中,讓人類來辨識,在驗證是否為人類的同時,也促進書本內容的數位化。

Google於2009年時收購reCAPTCHA,並且持續的改良驗證方式,使其由輸入文字驗證的reCAPTCHA v1,進步到核取方塊及圖片驗證的reCAPTCHA v2,以及評估使用者行為的reCAPTCHA v3。在2020年,Google更發布了企業級應用reCAPTCHA Enterprise,為企業防範日益增多的網站詐欺活動及濫用行為。

reCAPTCHA

Google reCAPTCHA的種類及驗證方式

目前,reCAPTCHA v1已停止使用;因此,在本段落中,僅介紹reCAPTCHA v2、reCAPTCHA v3及reCAPTCHA Enterprise。

Google reCAPTCHA v2:「我不是機器人」核取方塊及隱形reCAPTCHA標記

reCAPTCHA v2發布於2012年,目前共有「我不是機器人」核取方塊("I'am not a robot" checkbox)及隱形reCAPTCHA標記(Invisible reCAPTCHA badge)等兩種模式。

模式一:「我不是機器人」核取方塊

「我不是機器人」核取方塊的驗證模式,是透過使用者勾選核取方塊,來判別使用者不是機器人。在勾選後,使用者可能直接通過測試,也可能需要進一步進行圖形驗證,例如:選取含有汽車、紅綠燈、斑馬線等的照片,來判別是否為人類。

Google reCAPTCHA v2 我不是機器人

模式二:隱形reCAPTCHA標記

在上述的模式一中,由於使用者正在執行的動作會被驗證機制中斷,故有影響使用者體驗的疑慮。為了解決這個問題,Google近一步改良並推出了隱形reCAPTCHA標記模式

在這個模式中,驗證機制會被自動執行,如果驗證通過,則使用者可在未被中斷的情況下完成正在進行的動作;而若沒有通過,則會跳出驗證程序,完成後才能繼續進行動作。根據Slash Gear的報導,這個模式透過結合機器學習及進階風險分析的方式,讓系統自動偵測使用者在網頁上的習慣,例如:滑鼠移動、IP位置等,來防範潛在的威脅。

設置隱形reCAPTCHA標記的網頁,一般會在右下角或左下角看到如下的圖示。

Invisible reCAPTCHA badge

Google reCAPTCHA v3:分數制偵測系統

reCAPTCHA v3是2018年發布的驗證模式,與reCAPTCHA v2的兩種模式相異,reCAPTCHA v3採用分數制的偵測系統,該系統會對使用者在網站中的動作進行評分,由0.0開始,每0.1為一間隔,最高分為1.0。分數越高,則表示互動狀況良好;反之,分數低於一定水準(預設值為0.5),則會被判定為機器人。在驗證過程中,reCAPTCHA v3完全不會中斷使用者的正在進行的動作,故能夠提供更佳的使用者體驗。

設置reCAPTCHA v3的網頁,與reCAPTCHA v2的隱形reCAPTCHA標記相同,會在網頁右下角或左下角呈現reCAPTCHA圖示。

Google reCAPTCHA Enterprise

隨著網站安全的威脅逐漸增多,Google在今年(2020年)推出了進一步的企業級應用reCAPTCHA Enterprise。這項應用以現有的reCAPTCHA技術為基礎,協助企業網站防範更多形態的詐欺活動 ,例如:內容擷取、憑證填充和自動化帳戶建立程序等,並預防會引發鉅額損失的自動化機器人漏洞攻擊。reCAPTCHA Enterprise與reCAPTCHA v3相同,採用分數制的偵測系統,但能夠提供更精細的分數以及高風險分數原因代碼,以供企業進一步分析。

Google reCAPTCHA Enterprise

如何在WordPress網站安裝Google reCAPTCHA?

在接下來的段落中,FirstHatch一起孵將介紹使用過的兩個WordPress外掛,並分享註冊reCAPTCHA並導入WordPress網站的流程。

Advanced noCaptcha & invisible Captcha (v2 & v3)外掛

Advanced noCaptcha & invisible Captcha (v2 & v3)由Shamim Hasan開發,目前已有100,000+的安裝數。

這個外掛能夠將reCAPTCHA v2的「我不是機器人」核取方塊或隱形reCAPTCHA標記,或是reCAPTCHA v3,加入WordPress的留言欄、登入表單、註冊表單、忘記密碼表單及重設密碼表單、Contact Form 7及其他表單、bbPress、BuddyPress、WooCommerce等中。同時,也提供了針對reCAPTCHA外觀、位置調整的功能。

另外,雖然這個外掛有提供付費版,但老實說不太容易看出與免費版本的差異。

Advanced noCaptcha & invisible Captcha (v2 & v3)外掛檔案

Invisible reCaptcha for WordPress外掛

Invisible reCaptcha for WordPress由Mihai Chelaru開發,目前同樣累積了100,000+的安裝數。

這個外掛的基本適用範圍與Advanced noCaptcha & invisible Captcha (v2 & v3)大致相同;但在串接reCAPTCHA v2時,無法串接「我不是機器人」核取方塊,僅能使用reCAPTCHA v2的隱形reCAPTCHA標記及reCAPTCHA v3。

另外,值得注意的是,這個外掛能夠在WordPress多站點中,以多站網路外掛的形式啟用,對於使用WordPress多站點架設網站的情況,可以說是十分便利。

Invisible reCaptcha for WordPress外掛檔案
  • 外掛名稱:Invisible reCaptcha for WordPress
  • 相容性:WooCommerce、Contact Form 7、Gravity Forms、Ultra Community、BuddyPress、WordPress Multisite
  • 費用:免費
  • 連結:免費版(WordPress.org下載)

將reCAPTCHA v2的「我不是機器人」核取方塊導入WordPress網站的流程

在這個段落中,FirstHatch一起孵將使用Advanced noCaptcha & invisible Captcha (v2 & v3),進行串接reCAPTCHA v2的「我不是機器人」核取方塊的操作教學。

步驟一:註冊reCAPTCHA v2的「我不是機器人」核取方塊

首先,進入reCAPTCHA官網,並點擊Admin Console,進入填寫網站資料的環節。

install-recaptcha-v2-1

在填寫網站資料的頁面中,輸入網站標籤以及網域,並選取reCAPTCHA v2的「我不是機器人」核取方塊,再按下提交。

install-recaptcha-v2-2

接著,就會進入完成註冊的頁面。在這個頁面中,需要將兩串密鑰分別記錄下來,在後續步驟中使用。

install-recaptcha-v2-3

最後,可以點擊前往ANALYTICS(分析),查看驗證情況。

install-recaptcha-v2-4

步驟二:安裝Advanced noCaptcha & invisible Captcha (v2 & v3)外掛並完成設定

在WordPress網站中,安裝Advanced noCaptcha & invisible Captcha (v2 & v3)外掛後,進入設定頁面,依照下圖,選擇reCAPTCHA的版本(本步驟以reCAPTCHA v2的「我不是機器人」核取方塊為例),並輸入前一步驟中的兩串密鑰,再依據自己的需求選擇要啟用reCAPTCHA驗證的表單。其餘設定可以保持預設。完成後,即可按下儲存。

install-recaptcha-v2-5

在上圖中,FirstHatch一起孵選擇了Login Form作為啟用reCAPTCHA驗證的示範。回到登入頁後,即可看到reCAPTCHA v2的「我不是機器人」核取方塊以正確插入。如下圖。

install-recaptcha-v2-6

另外,若要將「我不是機器人」核取方塊加入Contact Form 7表單外掛,則需要參考說明文件,以短碼的方式加入。而對於其他表單外掛,依據說明文件,也可以透過PHP或是短碼的方式插入。下圖以Contact Form 7為例。

install-recaptcha-v2-7

將reCAPTCHA v2的隱形reCAPTCHA標記或reCAPTCHA v3導入WordPress網站的流程

在安裝reCAPTCHA v2的「我不是機器人」核取方塊的過程中,插入表單時,仍然需要手動的將reCAPTCHA插入正確位置,對於網站上擁有多個表單,或是不熟悉WordPress的人來說,可能較為繁瑣。因此,本段將介紹以Invisible reCaptcha for WordPress外掛導入reCAPTCHA v2的隱形reCAPTCHA標記或reCAPTCHA v3的過程,更簡單的保護網站。

步驟一:註冊reCAPTCHA v2的隱形reCAPTCHA標記或reCAPTCHA v3

註冊步驟與前述相同,唯一的差別在於reCAPTCHA類型的選擇。下圖分別為選擇reCAPTCHA v2的隱形reCAPTCHA標記或reCAPTCHA v3的情形。

install-recaptcha-v3-1

步驟二:安裝Invisible reCaptcha for WordPress外掛並完成設定

無論選擇reCAPTCHA v2的隱形reCAPTCHA標記或reCAPTCHA v3對於接下來的步驟並沒有影響。

在WordPress網站中,安裝完Invisible reCaptcha for WordPress外掛後,進入設定頁面。在這個頁面中,將密鑰貼入欄位後,再按下儲存。其餘欄位可以保持預設。

install-recaptcha-v3-2

接著,依據自己的需求,從側欄的選單中勾選需要保護的表單。下圖以Contact Form 7為例。

install-recaptcha-v3-3

回到網站前端後,查看表單頁,即可看到左下角出現reCAPTCHA標記。

install-recaptcha-v3-4

結論

惡意程式在網站上的濫用行為、詐欺活動日益增加,故保護網站免於這些行為的侵擾變得極為重要,安裝Google reCAPTCHA可以說是一個快速又簡單的方法。Google reCAPTCHA依據驗證方式的不同,目前共有reCAPTCHA v2的「我不是機器人」核取方塊及隱形reCAPTCHA標記和reCAPTCHA v3等三種免費選項。對於WordPress網站來說,可以透過Advanced noCaptcha & invisible Captcha (v2 & v3)或Invisible reCaptcha for WordPress等外掛來快速導入reCAPTCHA。除了特定情況,例如:WordPress多站點,選擇哪一個外掛並沒有太大差異,均能夠達到透過區分機器人和人類來保護網站免於惡意程式攻擊的目的。

相關文章
WordPress是什麼?超過30%市佔率的內容管理系統(CMS)
可以用WordPress製作客製化網站嗎?套版網站與客製化網站的差異
5個好用的Contact Form 7延伸外掛
設定Contact Form 7事件追蹤及目標追蹤的2種方法
3個停用WordPress外掛的方法
完整移除WordPress外掛的2個方法,有效減少網站效能負擔
網站設計與架設流程的6個步驟
從行銷角度切入WordPress多語言網站架設
如何顯示WordPress文章閱讀時間?

分享:
訂閱FirstHatch一起孵,聊聊有興趣的主題