只是想知道用户权限检查,
您是否应保留会话中的权限
例如。选择用户信息并将权限ID存储在会话中
或在进行查询之前的所有时间对数据库进行权限检查?
答案 0 :(得分:1)
我每次都从数据库中获取数据,因此当我更改权限时,用户会立即更新,而不是下次登录。
许多人会认为可能会有性能损失。但是如果像大多数PHP用户一样使用MySQL,结果将保存在RAM中的查询缓存中,并且几乎可以立即使用。
答案 1 :(得分:1)
这取决于您网站的安全级别。如果您认为安全性对您的网站非常重要,并且您希望在用户更改后立即对其进行安全更改,则必须使用数据库调用。但是,如果您的权限系统是以这种方式设计的,那么它可能变得非常缓慢且效率低下。
如果安全性可以“等待”下一个会话,那么我认为最好在会话中保存权限以避免性能下降。
答案 2 :(得分:1)
这是memcache的一个很好的用例。您可以将用户权限存储在数据库中,将其拉下一次并缓存它们。后续页面加载将从memcache中获取。
当管理员更改用户的权限时,该操作可以简单地使缓存密钥无效(删除)。然后,下次从缓存中获取时,它将不会存在,您将知道再次访问数据库。
答案 3 :(得分:1)
在应用程序中,不可用的数据不可用。如何建立这个简单的程序取决于您,并且取决于您如何构建应用程序。
例如,您允许使用您在整个应用程序中共享的数据库凭据进行数据访问,这可能在其配置值中。
假设你这样做:如果你没有这个问题,为什么你更关心一个更详细的案例呢?