Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails attr_accessible,attr_accessior,我想知道他们是做什么的_Ruby On Rails_Attr Accessible_Attr Accessor - Fatal编程技术网

Ruby on rails attr_accessible,attr_accessior,我想知道他们是做什么的

Ruby on rails attr_accessible,attr_accessior,我想知道他们是做什么的,ruby-on-rails,attr-accessible,attr-accessor,Ruby On Rails,Attr Accessible,Attr Accessor,我正在做Rails和面向对象编程的第一步。 有一点我很想理解:为什么我们需要模型中的attr\u accessible 我曾读到,黑客可以使用大规模分配来更改数据库条目,从而压缩安全性,这就是敏感字段需要保护的原因(在本例中使用atribute\u protected) attr\u可访问与atribute\u受保护相反吗?如果是这样,为什么我们需要说明哪些字段是可访问的,哪些是不可访问的?defult不可以访问这些字段吗?那么,attr\u访问器用于什么 我注意到,如果我不允许某些字段,我的应

我正在做Rails和面向对象编程的第一步。 有一点我很想理解:为什么我们需要模型中的
attr\u accessible

我曾读到,黑客可以使用大规模分配来更改数据库条目,从而压缩安全性,这就是敏感字段需要保护的原因(在本例中使用
atribute\u protected

attr\u可访问
atribute\u受保护
相反吗?如果是这样,为什么我们需要说明哪些字段是可访问的,哪些是不可访问的?defult不可以访问这些字段吗?那么,
attr\u访问器
用于什么

我注意到,如果我不允许某些字段,我的应用程序将无法运行。我是否可以将attr_aceable用于敏感字段,如:password_digest和:admin

如果有人能给我解释一下,那就太神奇了

祝你一切顺利,
Timmynrails

这里有几个概念混在一起,所以我将尝试解开它们

attr\u访问器
用于设置可读写属性。这相当于说
attr\u reader
attr\u writer
。因为你的问题不是直接关于属性访问器的,所以我只想说在上查看这个链接


根据Rails文档:
attr\u accessible
与attr\u protected宏相反

您认为这些方法用于防止大规模分配漏洞是正确的

  • attr\u accessible
    说明哪些属性可以通过批量分配设置
  • attr\u protected
    说明哪些属性不能通过批量分配设置
那么每种方法的用例是什么呢?在一种情况下,您可以设置一个全局配置选项,以便所有属性都必须声明为可访问的属性

config.active_record.whitelist_attributes = true
在这种情况下,您应该经常使用
attr\u accessible

和受保护的属性?如果你走了相反的路,在白名单属性上说
false
,你将如何声明哪些属性不应该是大规模可分配的?如果你说的是
attr\u protected
你是对的D

通常,您希望将
:admin
等字段设置为
attr\u protected
,因为您不希望攻击者进入并将其权限升级为管理员角色


集体作业不是一件容易做对的事情。大而聪明的开发团队已经弄错了这一点。所以,小心点,确保你明白发生了什么

多谢各位!现在清楚多了。我喜欢这个网站!