Ruby on rails RubyonRails。用户模型的管理员属性有多安全?

Ruby on rails RubyonRails。用户模型的管理员属性有多安全?,ruby-on-rails,security,devise,admin,Ruby On Rails,Security,Devise,Admin,我找不到任何明确的答案。 我有一个带有designe的用户模型,我添加了一个布尔值的“admin”属性,默认为false。目前,我必须转到控制台并手动将属性更改为true,以向用户提供此管理员状态 我的问题是,这有多安全?有没有任何方法可以让用户在不访问当前我的计算机的服务器的情况下更改自己用户的状态? 一旦我把网站投入生产,安全会受到影响吗?admin属性不是登录、注册或更新时允许的参数 我这样问是因为我想为自己添加一个个人仪表板,以便在网站投入生产时查看、编辑或删除我可能需要的任何内容。考虑

我找不到任何明确的答案。 我有一个带有designe的用户模型,我添加了一个布尔值的“admin”属性,默认为false。目前,我必须转到控制台并手动将属性更改为true,以向用户提供此管理员状态

我的问题是,这有多安全?有没有任何方法可以让用户在不访问当前我的计算机的服务器的情况下更改自己用户的状态? 一旦我把网站投入生产,安全会受到影响吗?admin属性不是登录、注册或更新时允许的参数


我这样问是因为我想为自己添加一个个人仪表板,以便在网站投入生产时查看、编辑或删除我可能需要的任何内容。

考虑到Desive,安全是最不可能出错的事情,除非Rails或Desive中的任何一个坏掉,这是不可能的。 您已经采取了足够的步骤,比如不允许使用admin参数,这对于几乎所有情况都应该足够了。
包括GitHub和Shopify在内的几个Rails应用程序可能在没有Desive的情况下实现了这一点,但如果没有安全问题,这并不是一个问题。我自己使用Desive和admin标志,可以保证它足够安全

您不使用以下内容的原因是什么?它将允许您将来以比为每个角色的用户添加属性更易于管理的方式扩展到其他角色

不管怎样。。。除非您为他们提供更新该字段的方法,否则该字段应该是安全的。如果您想确保非管理员无法更新该字段,您可以始终向UsersControllerupdate添加如下内容:

params[:user].delete(:admin) unless current_user.admin?
如果使用,则只有在允许从管理面板之外的任何操作设置此属性时,才存在风险


为了更加安全,您可以使用attr_readonly,这样您只能在创建对象时设置此属性

我有两个用户角色,一个用于站点的布尔值,一个用于我自己的页面的管理布尔值。我看不出有什么可以预见的理由需要增加更多的角色。谢谢你消除我的顾虑,我会记住你的建议。谢谢你消除我的顾虑和你的建议。我会调查的。