Login  |  繁體中文
感謝您對「自由軟體鑄造場」的支持與愛護,十多年來「自由軟體鑄造場」受中央研究院支持,並在資訊科學研究所以及資訊科技創新研究中心執行,現已完成階段性的任務。 原網站預計持續維運至 2021年底,網站內容基本上不會再更動。本網站由 Denny Huang 備份封存。
也紀念我們永遠的朋友 李士傑先生(Shih-Chieh Ilya Li)。
Tech Column Plone 上的 Captcha 應用

Plone 上的 Captcha 應用

◎ 什麼是 Captcha

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

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

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

◎ PloneCaptcha

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

一、安裝

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

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




OSSF Newsletter : 第 66 期 OpenVanilla

Category: Tech Column