Railsのセキュリティについて質問があります。モデルがあり、、、などのUser
役割のブール値が多数あるとします。admin
director
管理者は間違いなくフォームでこれらの値を編集したいのでattr_accessible
、管理者ユーザーにこれを行わせるために使用したいと思います。
もちろん、他の用途でもユーザーモデルを編集できます。プロファイルを編集するか、新しいユーザーをシステムに招待/追加するときに使用できます。ディレクターの場合、実際にはディレクターよりも「少ない」役割を設定してもらいたいのですが、ディレクターが設定しdirector
たり、admin
ユーザーを変更するこれらのコントローラーを公開しているので、この場合は設定をattr_accessible
許可director
しませんか?admin
これは非常に大きなセキュリティホールのように聞こえます。
では、アクセスを制限するための最良の方法は何ですか?
各パラメータを一度に1つずつ設定しますか?
作成/更新アクションを設定
admin = false
しますか?director = false
最も単純な解決策ですが、これをコントローラーに含めるのはちょっと厄介です。ifステートメントを使用して、そのユーザーロールがこれらの属性を編集して許可できるかどうかを確認しますか?
before_validation
または?などのrailsコールバックを使用しますかbefore_save
?他の宣言型ソリューション?
ありがとう