一般來說,我們在開發系統正式上線前,雖然說都會注意安全性,但是難免總會有些遺漏的地方,
Ruby On Rails Security Guide告訴我們如何注意安全性的問題,大概分為14須注意的層面:
1.不要相信登錄的使用者(認證通過是一回事,但是授權使用又是另一回事)
2.慎防處理大量的任務(最好使用attr_accessible或是attr_protected在model裡)
3.將部份工作設成不可編輯或是只允許讀取的狀態
4.小心SQL injection攻擊
5.防止可以執行的文件被上傳
6.從log中過濾較具敏感性質的參數
7.小心CSRF的(Cross-Site Request Forgery)攻擊,並使用 protect_from_forgery 和 csrf_meta_tag保護。
8.小心XSS(Cross-Site Scripting)攻擊
9.小心session被截取
10.避免重定向到用戶提供的網址
11.避免使用用戶參數或內容在 send_file 方法
12.記得自己使用的非actioncontroller的方法,並記得在路由的位置
13.檢查所使用的套件並做安全性的更新
14.不要將密碼以明文形式儲存在資料庫裡
這篇文章引用自
http://matthewhutchinson.net/2010/10/21/yet-another-rails-security-checklist
http://www.railsinside.com/tips/486-14-bare-minimum-security-checks-before-releasing-a-rails-app.htm
http://guides.rubyonrails.org/security.html