我通常倾向于特定的技术问题,但这是一个相当开放的问题,但仍处于问答而非讨论的范围内。
它考虑了用户级别权限的最佳实现,以规范在 Web 应用程序中可以做什么和不可以做什么。
我将从一个例子开始。我想从数据库中删除一部分。我以 Jon Doe 身份登录。Jon Doe 具有访问权限级别 1(sql 数据库中的列),因此无法删除部分。我将使用 javascript (jQuery) 来触发 ajax PHP 函数来执行删除。
所以,我想出了一些选择,但我相信还有更好的选择。
我可以在登录时设置一个 PHP“用户级”会话变量,在 Ajax PHP 删除请求中评估并返回成功函数,让用户知道访问被拒绝。
优点:访问速度快,简单
缺点:我必须运行 PHP 请求,并且评估成功是否混乱
我可以运行一个 PHP 预定义函数,在 Ajax PHP 删除请求中查询 mySQL 的用户权限,然后返回成功函数并让用户知道访问被拒绝。
优点:实时评估(不一定很关键,但允许在用户保持登录状态时更改权限)
缺点:我必须运行 PHP 请求,并且评估成功与否
我可以在运行 Ajax PHP 删除请求之前查询的 Ajax Javascript / PHP 登录过程中创建一个全局“用户级”javascript 变量(附加到窗口?)。
优点:停止不必要的 ajax 请求,非常简洁和容易
缺点:似乎它可能很脆弱
我希望在整个应用程序中对用户特权进行相当程度的评估,因此我很感激专家为解决我认为相当普遍的问题所做的任何建议。我可能错过了一些明显的东西。
谢谢。
** 作为回应 **
啊,这很有趣。是的,有一个加载模板界面,每个内容面板都是通过 ajax 加载的。我并没有真正考虑将禁用或删除界面按钮作为“先发制人的打击”。我也喜欢先进行 javascript 检查,同时在 PHP 端进行检查来支持它的想法。如果用户已经未能达到所需的访问级别,这将避免我不得不执行不必要的 Ajax 调用。