◎ 什麼是 Captcha
為了防止有心人士使用惡意程式進行大量註冊,通常會在表單頁面添加圖形認證碼的機制,即稱為 Captcha。
1.「Yahoo 家族」發表文章時,使用的 Captcha。 2.「MSN Passport」註冊帳號時使用的 Captcha。
◎ PloneCaptcha
在 Plone 上也提供了類似 Captcha 機制的 Product,由 ParTecs 所開發的 PloneCaptcha 就是其中之一,也是本次要介紹的主角。
一、安裝
在開始使用之前,首先要下載並安裝好 Plone Captcha Product,步驟就和一般的 Product 相同。
至此 PloneCaptcha 已經安裝完成。
PloneCaptcha 提供了一個測試頁面 https://your_portal/captcha_test ,請修改 your_portal 成你的 Plone 網址。測試頁面以 Plone 會員註冊表單為範本, 並加入了 Captcha 的驗證功能。
二、設定
由於 PloneCaptcha 是使用 captchas.net 的 CAPTCHA-Service,因此必須先前往註冊。
在取得一組帳號密碼之後,將帳號密碼填入 Products/PloneCaptcha/config.py 當中。
CAPTCHA_USER = 'demo'三、使用
CAPTCHA_PASS = 'secret'
PloneCaptcha 必須搭配 Controller Page Template 使用,由於 Controller Page Template 內容廣泛已超出此次的介紹範疇,煩請參考延伸閱讀提供的資料。
要使用 PloneCaptcha ,我們只要在 Controller Page Template 物件中加入下例程式碼,就可以嵌入圖形驗證碼的功能。
div metal:use-macro="here/captcha/macros/edit" />另外還要設定驗證的方式,讓程式知道必須通過圖形驗證才能繼續下去。
[validators]
validators = validate_captcha
以上簡單的介紹了 Captcha 以及在 Plone 上使用 Captcha Product 的方法。
由於表單頁面送出後的處理,通常需要較多運算資源,如果遭到惡意程式大量的送出帳號註冊、發表文章等攻擊行為,輕則可能擾亂站務運作,帶給使用者不便。嚴重將導致系統資源耗竭,無法提供服務。如能有效運用 Captcha ,將可大幅阻絕類似的惡意行為發生。
相關網址:
1.PloneCaptcha 官方網站
2.Introduction to creating and validating forms