Rails:会话身份验证需要控制器强有力的参数吗?

时间:2016-06-27 20:48:04

标签: ruby-on-rails session strong-parameters

Rails开发人员应该熟悉典型的强参数构造:

private
def object_params
  params.require(:object).permit(:object_data, ...)
end

我一直在查看我正在开始研究的项目的代码,我发现在任何地方都没有使用它。而不是创作,他们只需使用params[:object]并停在那里。

这让我很担心,所以我决定通过 curl 发送一些POST来自己创建“对象”。他们每个人都被拒绝(谢天谢地),因为应用程序的会话需要用户权限。从Curl那里没有。

所以我认为这不是一个问题,因为你无论如何都要登录,但由于缺乏强大的参数,我仍感到不舒服。

应用程序仍然容易受到攻击吗?我是否应该加上强大的参数以防万一?

  • 浏览一下宝石,我觉得 Devise 是唯一能在这里产生影响的东西。尚不确定。

1 个答案:

答案 0 :(得分:0)

完全取决于您的申请。如果每个经过身份验证的用户都具有管理员权限,或者他们的权限正在其他地方进行检查,那么只要具有这些权限的每个人都能够写入任何属性,就不需要强参数。

就个人而言,无论如何我都会使用强参数。这是惯例,它传达了控制器的预期用途。即使所有属性都是游戏,你仍然可以使用许可!传达这一点。