第三方登录是安全问题所在,建议尽快 patch up。
我觉得是 ruby china 的管理员功能实现的很怪异。
普通做法是在 user 表上加一个标记。
现在 ruby china 的做法是在配置里存一个邮箱数组,通过判断用户的邮箱是否在数组里来判断是否有管理权限。
带来的问题就是: 1.添加管理员之后要重启 2.管理员改邮箱后就丢失了管理权限 3.只有有权限修改服务器上配置的人才能分配权限(这个也可以当作优点)
@hooopo 你说的第 3 点,我认为应该考虑的更细一点。部署的伙计应该不让他配置参数。有程序自己来配置。方法: 1、有独立的 APP 来管理配置。 2、管理功能有标记来识别。 3、向目前这样,不配置管理员。全局在配置中加上白名单,也就是超级用户。
#12 楼 @xds2000 你说的第一点类似 Heroku 这样的云平台了,Heroku 目前的做法是所有配置都存储在环境变量里,有专门工具去修改环境变量,并且每次环境变量修改之后代码重新 release 一个版本,可以 rollback
我觉得(超级)管理员这个功能应该和配置没有关系,应该是数据库 seed 或One-off admin processes来做的事情。