加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails attr_accessible:object vs:object_id

发布时间:2020-12-16 19:39:49 所属栏目:百科 来源:网络整理
导读:用户has_one帐户.在用户模型上设置attr_accessible最好是保护:account,:account_id或者两者兼容? attr_accessible :account 要么 attr_accessible :account_id 要么 attr_accessible :account,:account_id 我觉得两者都是要走的路(因为它更安全),尽管它感
用户has_one帐户.在用户模型上设置attr_accessible最好是保护:account,:account_id或者两者兼容?
attr_accessible :account

要么

attr_accessible :account_id

要么

attr_accessible :account,:account_id

我觉得两者都是要走的路(因为它更安全),尽管它感觉较少干.

更新给予更多的背景

只是为了给我更多的背景,为什么我问.我像大多数ppl一样,看到Github发生了什么事情,所以我们正在通过我们的应用程序,把它锁定得更紧.

在这样做的过程中,我发现我们通过的测试

User.create account:account

我们在account_id中传递的地方:

User.create account_id:account.id

我的选择是将它们全部改为一致,或者改变attr_accessible以允许任一.我决定把它们全部变成一致的.但是这让我担心我们可能在我们的应用程序中使用这两种方法,我可能只允许一个或另一个打破我们的应用程序.

当我说使用两者更安全的时候,我做了misspeak.这是一个漫长的一天.

解决方法

这个没有正确的答案,尽管它取决于你打算如何更新这个用户. attr_accessible:帐户将允许您直接像这样大量分配帐户:
user.update_attributes(:account => account)

如果您已经拥有要与用户关联的帐户对象以及许多其他属性,则此功能很有用.另一方面,attr_accessible:如果您从一个下拉菜单或其他一些表单元素分配帐户的ID,则account_id将更为合适:

user.update_attributes(params[:user]) # params[:user][:account_id] is a part of this hash

后一种情况通常被认为更危险,并且是Github最近的安全问题的一部分问题:您可以发布任何您喜欢的account_id,包括不属于您的帐户,并且您的用户将被分配给它.

所以总体而言,我会去前者,并查找一下,以确保帐户是一个你期望的,但正如我刚才所说,你可以采取任何一种方式,这取决于你打算如何使用它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读