2011-02-23 81 views
1

我有一個應用程序,我正在寫軌道3 W /康康和設計。我很好奇,從安全的角度來看,授權控制器上的後置操作是必要的還是有用的?假設我所有的控制器動作都需要認證w/devise(即用戶必須登錄)。發佈操作需要Rails授權嗎?

我可以看到爲什麼我需要通過cancan對我的控制器使用GET的操作進行授權,因爲用戶可以簡單地輸入他們希望自由訪問的url並且必須鎖定。但是,對於帖子,用戶必須從表單發佈數據,該表單通過令牌防止xss攻擊。

在這種情況下,假設如果我限制在我的視圖中使用cancan的按鈕的可見性,用戶將無法惡意提交表單,那麼是否安全?

非常感謝

編輯:

感謝您的快速答覆傢伙。正如下面已經指出的,惡意用戶可以使用諸如螢火蟲之類的工具僞造一個表格帖子,因此授權是必要的。

使用水豚/黃瓜來模擬這種類型的交互(用戶張貼到他們已被黑客入侵的URL)的最佳方式是什麼?

再次感謝。

回答

2

用戶可以提交POST請求,無論他們是否在您的網站上。您認爲安全令牌有助於阻止XSS,但是我會爲其他攻擊方法添加身份驗證。

如果您擔心安全問題,一本好的(免費)電子書是Ruby on Rails Security Guide。它概述了所有常見的惡意攻擊形式,甚至還探討了一些較少使用(但同樣有效)的方法。它還爲如何讓您的應用程序更安全提供了很好的解決方案。

1

您應該驗證控制器中的用戶授權。

使用FireBug等簡單工具,您可以手動編輯表格的內容,甚至可以添加更多文本字段或類似內容。 XSS保護不會幫助你。

0

用戶仍然可以在客戶端生成按鈕(使用Firebug更改瀏覽器代碼的任何方法)併發送表單。如果我記得正確的令牌是在HTML頭文件中發送的,僞造表單不會有問題。