Powen’s Weblog

九月 21, 2006

Plone 上的 Captcha 應用

分類於 Technology, Zope/Plone — Powen @ 6:00 午後

什麼是 Captcha

為了防止有心人士使用惡意程式進行大量註冊,通常會在表單頁面添加圖形認證碼的機制,即稱為Captcha。

Captcha 已經被廣泛應用在各種表單頁面當中,以下列出常見的應用。

example_2.gif

「Yahoo 家族」發表文章時,使用的 Captcha。

msn_captcha.png

「MSN Passport」註冊帳號時使用的 Captcha。

PloneCaptcha

在 Plone 上也提供了類似 Captcha 機制的 Product,由 ParTecs 所開發的 PloneCaptcha 就是其中之一,也是本次要介紹的主角。

安裝

在開始使用之前,首先要下載並安裝好 Plone Captcha Product,步驟就和一般的 Product 相同。

  1. 至 ParTecs 官方網站下載 PloneCaptcha
  2. 解壓縮到 ~zope/instance/Products 目錄當中
  3. 重新啟動 ZOPE
  4. 檢查 PloneCaptcha 是否成功載入
    • captcha-11.png
  5. 接著在 Plone 網站設定的「新增/移除產品」中,將「PloneCaptcha」新增進去
    • captcha-21.png

至此 PloneCaptcha 已經安裝完成。

PloneCaptcha 提供了一個測試頁面 http://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-3.png

以上簡單的介紹了 Captcha 以及在 Plone 上使用 Captcha Product 的方法。

由於表單頁面送出後的處理,通常需要較多運算資源,如果遭到惡意程式大量的送出帳號註冊、發表文章等攻擊行為,輕則可能擾亂站務運作,帶給使用者不便。嚴重將導致系統資源耗竭,無法提供服務。如能有效運用 Captcha ,將可大幅阻絕類似的惡意行為發生。
延伸閱讀

PloneCaptcha 官方網站:

http://partecs.com/ploneCaptcha.html

Introduction to creating and validating forms:

http://plone.org/documentation/how-to/forms

2 則留言 »

  1. hi, i have created my own custom PloneCaptcha which is independent to any captcha site. It has its own varification method.
    Contact me for more information.

    Comment 由 vicky — 十一月 21, 2007 @ 7:08 午後

  2. shuv07@redifmail.com

    Comment 由 vicky — 十一月 21, 2007 @ 7:08 午後


RSS訂閱此篇文章的迴響留言 引用網址

留言

在WordPress.com寫網誌.