我最近完成了michael hartl的rails 4教程。 他创建了一个用于在用户中添加管理列的迁移。
class AddAdminToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :admin, :boolean, default: false
end
end
然后他更改了种子文件以播种用户
User.create!(name: "Example User",
email: "example@railstutorial.org",
password: "foobar",
password_confirmation: "foobar",
admin: true)
但是出于以下原因,创建这样的管理员来管理网络应用的内容将不安全: 1.任何可以查看种子文件代码的人最终都会找到关于admin用户的信息 2.如果我创建了一个管理页面,用户可以注册并成为管理员,这也是恶意行为。
所以应该是最好的方式。
答案 0 :(得分:0)
在制作时,您可能会登录到您的服务器,打开Rails控制台并手动创建第一个管理员。
答案 1 :(得分:0)
任何可以查看种子文件的人都可以看到schema.rb文件,在那里他可以找到你有哪些安全功能 - 而且,很可能会看到其他文件代码,比如你检查的控制器这个“admin”标志或任何其他花哨的授权相关代码。
我建议尽管:
rails c
设置第一个用户而且,最重要的是,不要忘记过滤掉users_controller中的“admin”参数(或者您对用户进行更新的任何地方)。