分享內容(
13人
簡而言之,就是做成人可以辨識,但無法利用程式軟體去辨識的圖形,要人親自回應圖形內容是什麼,才提供請求服務之機制。通常會在可以留言、註冊帳號、下載檔案等功能中,加入這 Captcha 的機制,以防止被透過程式,造成大量的 spam 留言,註冊、下載;為了防止辨識軟體破解,而會將圖形做一定程度的扭曲,目的是使真人看得懂,但程式無法辨識出,這是圖形特色。
安裝 captcha 的 plugins
RoR 中加入 Captcha 的機制有幾種的解決方式,在此用最簡單的方案 Simple Captcha ,只要照著該文的步驟,很快就可以建置此機制。
captcha 使用的環境設定完成。
使用 captcha 的機制
以前一日 [RoR] 簡單畫出 Web 2.0 特色圖形 Badges 徽章 標記 的例子為例,要加上 captcha 只要在 app/views/demo/index.html.erb 裡:
上述的 show_simple_captcha 的其他參數語法,可詳見該網站 Simple Captcha 來測試出會有怎樣不同的畫面。
而在 相對應的 controller 之中,只要將需要做這個圖型驗證的 action ,加入
所以在 前一篇 的原始碼中 app/controllers/demo_controller.rb 加入上述的語法:
這樣在接續 前一篇 的程式碼,再加上述的語法,就會出現像

就可利用 captcha 而達到防止被濫用的目的。
安裝 captcha 的 plugins
RoR 中加入 Captcha 的機制有幾種的解決方式,在此用最簡單的方案 Simple Captcha ,只要照著該文的步驟,很快就可以建置此機制。
# 如果系統沒有 subersion 的話,會無法執行再下一個指令(有關 svn: 的網址下載),才需要先做安裝 subversion 的動作。 yum install subversion # 安裝 plugins script/plugin install svn://rubyforge.org/var/svn/expressica/plugins/simple_captcha rake simple_captcha:setup rake db:migrate # 在 config/routes.rb 編輯: ActionController::Routing::Routes.draw do |map| ... # 多加這一行: map.simple_captcha '/simple_captcha/:action', :controller => 'simple_captcha' ... end # 在 app/controllers/application.rb 編輯: ApplicationController < ActionController::Base ... # 多加這一行: include SimpleCaptcha::ControllerHelpers end
captcha 使用的環境設定完成。
使用 captcha 的機制
以前一日 [RoR] 簡單畫出 Web 2.0 特色圖形 Badges 徽章 標記 的例子為例,要加上 captcha 只要在 app/views/demo/index.html.erb 裡:
<%= show_simple_captcha(:label => "請輸入您所看見的字母", :image_style => "random", :distortion => 'medium') -%> # 在 <%= submit_tag "畫出預覽", :name => nil %> 這一行的上面加入上面這一行
上述的 show_simple_captcha 的其他參數語法,可詳見該網站 Simple Captcha 來測試出會有怎樣不同的畫面。
而在 相對應的 controller 之中,只要將需要做這個圖型驗證的 action ,加入
if simple_captcha_valid?
do_this # 原有的 action 動作
else
do_that # 不進行上述 action 的回應
end
這樣的語法,就可先檢查圖型驗證是否正確,而決定是否執行該動作:所以在 前一篇 的原始碼中 app/controllers/demo_controller.rb 加入上述的語法:
def star
if simple_captcha_valid?
# 若沒有 text 的參數,用此預設值寫出字來
...
else
render :text => "識別碼不對,請回上一頁,重新整理後再輸入新的正確的識別碼"
end
end
這樣在接續 前一篇 的程式碼,再加上述的語法,就會出現像

就可利用 captcha 而達到防止被濫用的目的。
參考資料:http://expressica.com/simple_captcha/
▼ ADVERTISEMENT ▼
廠商來幫忙
邦友收藏動態
- 常用網路管理工具 Getif (Get Interfaces)教學 (kaiin323)
- 5 本超優免費的自學 Linux 電子書 (scottchen)
- 6款Windows平臺免費備份工具 (tomtom123)
- 關於Cisco、linux、MySQL、Oracle、unix一些命令手冊 (fran633)
- 穩定的感覺會咬人 (heero1219248)
- 化繁為簡的工作拆解手法 (brgodman)
- 用群組原則輕鬆管理使用者電腦 (raytracy)
- 系統分析師必須思考的8個問題 (arnolin)
- 關於CCNA一些自我學習資料大全~! (51pass)
- 10 個不可或缺的 Linux/Unix 指令速查表 (scottchen)
安裝「收藏快捷鍵」,可以讓邦友直接透過Google工具列上的按扭,快速收藏站內、站外的網頁。
相關問答
- 鐵人賽之期末報告
- [Ruby & Rails] Professional Ruby on Rails
- [Ruby & Rails] Ruby on Rails: Up and Running
- 鐵人賽之期中報告
- 第二屆鐵人賽開始啦,想參賽的必讀哦
- [Ruby & Rails] Practical Rails Plugins
- 2009第2屆iT邦幫忙鐵人賽得獎名單公佈
- [Ruby & Rails] Ruby on Rails Web Mashup Projects
- [Ruby & Rails] Rails CookBook
- [Ruby & Rails] Enterprise Recipes with Ruby and Rails
- [Ruby & Rails] Agile Web Development with Rails
- [Ruby & Rails] The Rails Way
- [Ruby & Rails] Ajax on Rails
- 鐵人賽大富翁不能用@@
- [Ruby & Rails] Ruby CookBook
- [Ruby & Rails] Learning Rails
- [Ruby & Rails] Beginning Ruby: From Novice to Professional
- [Ruby & Rails] The Merb Way
- [Ruby & Rails] Advanced Rails
- 請問 iT help 如何重新加入鐵人賽事








