attr_accessible と attr_protected

rails_logo.pngattr_accessibleattr_protectedが若干わかりにくいのでそれぞれについてまとめてみた。
attr_protectedは悪意のあるユーザーがフォームの改変によってモデルの属性が上書き、変更されるのを防ぐ
class User < ActiveRecord::Base
  attr_protected :approved, :role
end
とすると、
User.create(@params['user'])や、 @params['user']['approved'] や @params['user']['role'] を無視する。

attr_protectedの適用し忘れを防ぐためには、反対に変更可能な値をattr_accessibleで指定する。
class User < ActiveRecord::Base
  attr_accessible :name, :password
end
ただし新しい属性を追加した際には、同様にattr_accessibleに追加しておく必要がある。

参考:Securing your Rails application |


タグ:Rails
posted by digital-squad at 2008年09月19日 11時07分 | Comment(0) | TrackBack(0) | Ruby on Rails / Ruby
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。