控制器应该检查!params.nil?出于安全目的?

时间:2013-12-31 09:02:25

标签: ruby-on-rails forms security

我正在从form_for接收模型的数据。该模型对数据进行了广泛的验证,我使用if @name.save来捕获任何错误。

@name = Name.new(params[:name])之前运行以下其中一项,有助于保持我的网站更安全:

if !params.nil?
if params.has_key "name"
if params.include? "name"

如果出于安全原因,是否有其他理由这样做?我不询问用户输入是可选的情况,我想检查它是否存在,但是关于预期用户输入但是由于某种原因未能到达的情况。

1 个答案:

答案 0 :(得分:1)

你不需要写params.nil?用于检查参数。 验证应该写在模型中。 如果您不使用导轨4, 您可以使用'strong_parameters'gem来仅允许所需的参数建模(出于安全原因)。 strong_parameter gem已经存在于rails 4中。