【问题标题】:Rails security attr_accessible users making unauthorized requestsRails 安全 attr_accessible 用户发出未经授权的请求
【发布时间】:2013-07-23 12:34:12
【问题描述】:

自从我了解到 attr_accessible 的安全漏洞以来,我一直在尝试对这类东西非常小心,所以我需要澄清一下。

假设我有一个 Comment 模型,它有

attr_accessible :user_id

在我的表单中我这样做

= f.hidden_field :user_id, :value => @current_user.id

所以我不是从参数中获取值,而是从当前用户的实际 ID 中获取。

然而,我关心的不是我自己的表单,而是恶意请求。例如,如果有人要发送一个 post 请求如下:

POST comments?user_id=5 

当他们的 user_id 实际上是 1 时。他们可以代表其他人发帖吗?

谢谢。

【问题讨论】:

  • 实际上我根本不会通过隐藏字段或表单发送 current_user.id。您还可以访问控制器中的 current_user,这就是我喜欢的。

标签: ruby-on-rails security attr-accessible


【解决方案1】:

是的,你完全正确。我想我刚刚意识到了答案。基本上当一个属性不是 attr_accessible 时,你想直接在你的控制器中设置它,这使得它不可能像我上面提到的那样用流氓请求设置。此外,如果您的控制器直接从 params 设置变量,那么您就知道出了点问题并且该变量基本上是 attr_accessible。

谢谢弗洛

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 2021-11-01
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多