水無月ばけらのえび日記

bakera.jp > 水無月ばけらのえび日記 > Railsのupdate_attributesが強力な話

Railsのupdate_attributesが強力な話

2012年3月5日(月曜日)

Railsのupdate_attributesが強力な話

更新: 2012年3月12日22時15分頃

こんな話が……「github の mass assignment 脆弱性が突かれた件 (blog.sorah.jp)」。

update_attributes とは: ActiveRecord のモデルで、カラム名がキーとなった Hash を渡す事でデータを更新できるメソッド。foo.update_attributes(:title => "New Title") のように使います。 scaffold で生成されたコントローラの update アクションなどで使われていて、scaffold では update_attributes(params[:foo]) のようにパラメータが直接渡されています。

ここでのparamsは、クエリ文字列、あるいはPOSTされたクエリをそのまま格納したものです。scaffold (Railsが最初にひな形を自動生成する機能) では、外部から受け取ったクエリをそのまま渡すコードになっていて、書き換えずにそのまま使うとまずいことが起きるという話ですね。

で、実際にGitHubがやってしまっていたと。

ひとまずはプログラマが気をつければ良いという話ではあるのですが、scaffoldのままだと駄目というのはなんとも……。要注意ですね。

関連する話題: Web / セキュリティ / Ruby

最近の日記

関わった本など