gpt4 book ai didi

ruby-on-rails - 防止用户将自己设为管理员

转载 作者:行者123 更新时间:2023-12-04 06:50:33 25 4
gpt4 key购买 nike

在我的应用程序中,我有一个“用户”模型,其中包括许多属性,包括“has_admin_rights”。如果为 true,则用户是管理员,如果为 false,则不是。

每个用户都有一个个人资料,包括他们的登录名、电子邮件地址、个人资料图片等。

如果我以普通用户身份登录,则可以单击名为“个人资料”的页面,然后可以编辑自己的帐户,例如更新我的电子邮件地址、个人资料图片、密码等等。我只能编辑我的帐户,不能编辑其他帐户。

如果我以管理员身份登录,我可以做更多的事情:例如,我可以让另一个用户成为管理员,或者取消他们的管理员权限。

现在,只有管理员可以访问显示“make admin”复选框的 View ,但我觉得仅仅限制对 View 的访问是不够的。

我担心的是,由于任何用户都可以编辑他们自己的个人资料,有什么可以阻止用户提交自定义表单帖子,其中包含他们自己帐户上的“has_admin_rights”=>“1”参数 - 从而授予自己管理员访问权限?

我在想的是,在用户 Controller 中,在对“has_admin_rights”字段应用任何更改之前,我需要检查以确保发出请求的用户当前是管理员 - 否则我会完全忽略该请求,并且不做任何改变。

最佳答案

in the User controller, before applying any changes to the "has_admin_rights" field, that I need to check to make sure the user making the request is currently an admin - otherwise I ignore the request altogether, and make no changes.



对,就是这样。永远不要相信客户;请记住,任何人都可以直接使用 Firebug 或其他工具调整页面。

我还建议您考虑添加审计跟踪,并在一个管理员将另一个用户设置为管理员时记录一些内容。也许还可以向特定组的所有管理员发送电子邮件,让他们知道已创建管理员(或已撤销权限)。

关于ruby-on-rails - 防止用户将自己设为管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3180445/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com