PHP 用户权限检查


PHP user permission check

只是想知道用户权限检查,

是否应在会话中保留权限

例如,选择用户信息并将权限 ID 存储在会话中

还是在执行查询之前对数据库进行所有时间的权限检查?

在应用程序中,不可用的数据不应可用。如何建立这个简单的过程取决于您,并且在很大程度上取决于您如何构建应用程序。

例如,您允许使用在整个应用程序中共享的数据库凭据进行数据访问,可能在其配置值中。

假设你这样做:如果你对此没有问题,你为什么那么关心一个更详细的案例?

我每次都从数据库中获取数据,因此当我更改权限时,用户会立即更新,而不是下次登录。

许多人会认为可能会有性能损失。但是,如果您像大多数PHP用户一样使用MySQL,则结果将保存在RAM的查询缓存中,并且几乎可以立即使用。

这取决于您网站的安全级别。如果您认为安全性对您的网站非常重要,并且您希望在更改后立即对用户进行安全更改,则必须使用数据库调用。但是,如果您的权限系统以这种方式设计,它可能会变得非常缓慢且效率低下。

如果安全性可以"等待"下一个会话,那么我认为最好在会话中保存权限以避免性能损失。

这是memcache的一个很好的用例。您可以将用户权限存储在数据库中,将其拉取一次并缓存它们。随后的页面加载将从内存缓存中获取。

当管理员更改用户的权限时,该操作可以简单地使缓存键失效(删除)。然后,下次从缓存中获取时,它将不存在,您将知道再次访问数据库。