Ruby On Rails中HABTM复选框的批量分配漏洞利用

时间:2013-11-11 14:43:05

标签: ruby-on-rails ruby-on-rails-3 checkbox has-and-belongs-to-many mass-assignment

我正在使用HABTM复选框,如下所述:

http://railscasts.com/episodes/17-habtm-checkboxes

问题并非所有类别都可用于项目,但使用此方法,用户可以在浏览器中检查代码,并在提交之前更改类别ID。

如何防止此漏洞利用?我看到的唯一选择是强制循环遍历所有类别ID,同时将它们与有效类别ID列表进行比较,并拒绝那些不匹配的类别ID。

由于

1 个答案:

答案 0 :(得分:1)

我建议您为Project模型添加验证。它应该检查分配给项目的类别是否可以分配给该项目。然后控制器可以向用户显示验证错误。

class Project < ActiveRecord::Base
  validates :categories_are_available

  private

  def categories_are_available
    # code that checks available categories
  end
end