【发布时间】:2021-09-16 17:46:33
【问题描述】:
我正在为用户创建一个 Laravel 项目。 Laravel 有自己的 laravel/ui 包,但我也在创建它的管理面板,我对我应该为管理员做什么有点困惑。另外,我对管理面板的安全性感到困惑。所以我想到了2个解决方案:
- 在用户表中添加一个名为
status,的新列,如果其值为admin,他可以访问管理面板;否则,重定向到主页。 - 创建一个单独的管理员表并改进
laravel/ui auth。为此,我找到了文档here。
我该怎么办?即使我已经为.env 和config/database.php 中的表格添加了table prefix。恐怕黑客/用户不应该访问管理面板。另外,告诉我表前缀是否有利于安全,还是我应该删除表前缀?
【问题讨论】:
-
您应该使用与
status列相同的表。如果您验证所有请求,就不容易破解。无论如何,您存储的密码都是有价值的。 -
你在同一张表,但添加枚举列
role,枚举包含user和admin,然后基于此你可以创建中间件检查 -
好的,感谢您的回答。请检查更新的问题,我添加了关于
table prefix的最后一行 -
我认为这更多的是语义问题。您认为管理员与用户不同还是您认为管理员是一种特殊的用户?
-
我看不出新表和现有表中的附加“标志”在安全性方面有何区别。 authorisation 允许您设置只有您的管理员才能执行的操作,并为这些操作添加保护措施。答案中建议的 laravel 许可包也是一个不错的选择。
标签: laravel laravel-ui