0

Rails 3.2 と devise 1.5.3 を使用しています。

devise wiki How To: Add an Admin Roleのオプション 2 で説明されているように、モデルに管理者属性を追加しました。

これを強制ログイン用のポスト コントローラーに追加しました。

before_filter :authenticate_user!

あなたが管理者であるかどうかに基づいて、ビューの編集/新規リンクを非表示にするロジックを書きました。

やらなければならないことがもっとあるような気がします. 新規/編集/削除アクションをより安全にするために、他に何か追加する必要がありますか? もしそうなら、どこですか?

4

2 に答える 2

0

あなたの答えは機能しているかもしれませんが、使用している場合、アプリ全体でセキュリティを確保することはかなり困難であり、何かを忘れているかもしれないという感覚を与えるsome logic to hide the edit/new links in my views量はないと確信していますsecurity testing

たとえば、誰かがログインして、、、、(管理者プロファイルを持っていない)、(URL で) にアクセスする /users/edit/3と、あなたの貴重な情報が破損し始める可能性があります....

状況: Devise は認証のみを提供しますが、他の方法で承認を強制する必要があります。そうしないと、上記のことを実行できます...

そのために、私が個人的にテストしたCanCan(もちろんrbatesから)を強くお勧めします。これは、 githubのドキュメントと例を読むだけで非常に簡単に構成できます.....お役に立てば幸いです!

于 2012-01-26T03:12:04.227 に答える
0

認証と承認のメカニズムは、セキュリティの管理を担当しており、セキュリティ アップデートで定期的に更新されていることを確認する必要があります。

何かが欠けているという沈んだ気持ちは、テストによってのみ確実にカバーできます。したがって、Devise インストールのセットアップ方法が実際に正しいこと、および管理者以外のユーザーがアクセスしてはならないものにアクセスできないことを確認するいくつかのテストを作成します。次に、新しいものを追加するときにセキュリティ制限を更新するように十分注意してください。

Devise が動作することを確認するためにテストを書く必要はありません - しかし、Devise の使い方があなたが思っているとおりであること確認するためのテストを書く必要があります (つまり、非管理者がDevise にアクセスできない場合)管理者ページにログインし、管理者以外としてログインするテストを作成し、そのページにアクセスしてみて、テストでユーザーがリダイレクトされることを確認し、「アクセスが拒否されました」というメッセージが表示された場合は、それが起動していることを確認します)。そうすれば、後でセキュリティ アクセスをうっかり壊してしまっても、少なくともテスト スイートのテストで発見される可能性があります。

すべてのデプロイの前にテスト スイートを実行し、すべてのテスト (特にセキュリティ テスト) が実行され、合格していることを確認します。その後は用心深く、それがあなたにできるすべてです。

于 2012-01-26T02:54:55.980 に答える