2017-05-07 9 views
0

私は、特定のコントローラアクション/ビューへのアクセスを制限することで、Rails 5アプリを保護しています。レール内に限り、行ベースのセキュリティが行くようRails View Hacking Security

、それは可能であるが、何のparamsが渡されていないと仮定すると、Datum.all.pluck(:sensitive_column)ようなものでビューを操作して、それをハックするエンドユーザーのために表示します。

またはデータをフィルタリングしていますコントローラーでwhere節に十分なものを入れてください。where(current_user.id = user_id)

答えて

0

まず、SQLインジェクションを実行できないように照会ストリングをサニタイズしたいと思うかもしれません。 Rails Security Guideにはこれに関する多くの基本情報があります。

ビューでこれを考えるのではなく、コントローラで作成しているインスタンス変数から考えてみてください。理想的には、それがビューに当たるずっと前に見つけることができます。

Datumモデルでは、特定のユーザーがデータにアクセスできるようにスコープを設定します。

さまざまな種類のユーザーがいる場合は、CanCanCanのような認証方法があなたの路地にある可能性があります。