2012-01-26 17 views
0

我正在使用rails 3.2和devise 1.5.3。從哪裏進一步確保rails應用程序的最佳方式?

我說在我的模型管理員屬性作爲對色器件維基How To: Add an Admin Role

我加入這一個職位控制器部隊登錄的選項2描述:

before_filter :authenticate_user! 

我寫了一些邏輯隱藏我的視圖中的編輯/新鏈接取決於您是否是管理員。

我覺得還有更多我應該做的..我應該添加其他任何新的/編輯/刪除行動,使他們更安全?如果是這樣,在哪裏?

回答

0

你的答案可能會工作,但它是非常困難的,如果你正在使用some logic to hide the edit/new links in my views,以確保在整個應用程序的安全性,我敢肯定沒有security testing量會給你,也許你忘記了什麼

的感覺

比如我有人可以登錄,,,,(不具有管理配置文件)和去(在URL),: /users/edit/3,並開始破壞你的有價值的信息....

的情況是:只有設計提供認證,,,但授權必須以其他方式執行,否則我可以做到以上的事情......

爲此我強烈推薦CanCan(來自rbates ofcourse),這是我親自測試過的一個,並且只需閱讀github中的文檔和示例即可輕鬆配置PRETTY .....希望它有所幫助!

+0

感謝您建議康康。我開始弄清楚,我正在編寫一些代碼來保護控制器級別的東西。看起來cancan可能是一個更簡單,更經過測試的解決方案。我是Ruby/Rails n00b,所以我可以很容易地搞砸了;-) – bigdaveyl

0

您的身份驗證和授權機制負責爲您提供安全保護,並且您應確保定期更新安全更新。

那種沉溺於失去某種東西的感覺只能被測試所覆蓋。因此,編寫一些測試來驗證您設置Devise安裝的方式是否正確,並且非管理員用戶無權訪問他們不應該訪問的任何內容。然後要非常小心地確保在添加新內容時更新安全限制。

需要編寫測試,以確保設計的作品 - 但你需要編寫測試,以確保您的使用它是什麼,你認爲它是(即如果非管理員不該無法訪問管理頁面,編寫以非管理員身份登錄的測試,嘗試訪問該頁面,並在測試中驗證用戶是否已重定向,並且如果您有「拒絕訪問」消息,這就是射擊)。這樣,如果您以後無意中破壞了安全訪問權限,那麼您至少有機會在測試套件中遇到測試。

在每次部署之前運行測試套件,確保所有測試(特別是安全測試)都在運行並通過。然後保持警惕,這就是你所能做的一切。

+0

正在計劃使用rspec編寫一些測試用例來試圖查看事情是否按預期工作。很顯然,如果我寫得對,我應該更有信心的事情正在起作用。 – bigdaveyl

+1

這聽起來像一個很好的計劃。當JM通過隱藏鏈接提及安全性時,請確保您在測試中直接執行操作,並假定任何潛在的黑客將自定義構建其URL和參數,並確保您不僅僅依賴隱藏鏈接爲了安全 - 即不要相信來自瀏覽器的參數。 – jefflunt

相關問題