3

如果我在 Rails 中有一个表单,并且我只想向用户公开某些字段,我如何防止用户破解表单并添加其他字段以插入不需要的数据?

例如,假设我有一个包含以下列的 task.rb 模型:名称、描述、internal_notes。对于“app/views/tasks/new.html.erb”中的公共表单,我只想像这样公开公共字段:

form
  name:
  description:
/form

如何防止用户破解表单并执行此操作:

form
  name:
  description:
  internal_notes:  <--- inserted by user (e.g. through Google Chrome Elements)
/form

例如,用户可以输入<input type="text" name="task[internal_notes]" />表单,并提交不需要的数据。

有没有办法防止这种情况?

4

2 回答 2

6

这就是为什么存在两个非常有用的 ActiveRecord 类方法的原因:

查看有关MassAssignment的文档以更好地理解它。

于 2013-04-03T09:33:49.440 回答
2

我建议使用strong_parameters gem,因为它将成为 Rails 4 中 MassAssignment protectionn 的标准解决方案

于 2013-04-03T09:40:23.813 回答