【发布时间】:2012-11-01 15:07:42
【问题描述】:
对于在 rails_admin 中的用户上使用多个“角色”,CanCan 似乎是一个不错的选择。因此,我在用户模型中添加了一个布尔属性“admin”,并告诉 CanCan 仅当它存在时才允许访问 rails_admin。
但这不是安全问题吗?我如何确定没有人能够更改属性?
【问题讨论】:
标签: ruby-on-rails-3 security devise cancan rails-admin
对于在 rails_admin 中的用户上使用多个“角色”,CanCan 似乎是一个不错的选择。因此,我在用户模型中添加了一个布尔属性“admin”,并告诉 CanCan 仅当它存在时才允许访问 rails_admin。
但这不是安全问题吗?我如何确定没有人能够更改属性?
【问题讨论】:
标签: ruby-on-rails-3 security devise cancan rails-admin
我先说我对 Rails 的了解有限。但是,向对象添加布尔属性,这不是最终的(或任何无法更改的红宝石等价物)。此外,您需要在应用程序中添加一些防御性编码(例如按合同设计)。拥有可变属性的继承风险始终是一个问题。缓解这种情况的一种潜在方法是使用数据库或使用由受信任来源管理的证书(这样用户就不能轻易伪造证书并欺骗您的系统)
【讨论】:
不要将admin 属性放在可访问方法中,这样任何人都无法更改其值。
【讨论】: