1

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

您是否应该在会话中保留权限

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

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

4

4 回答 4

1

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

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

于 2012-06-16T12:49:36.620 回答
1

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

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

于 2012-06-16T12:49:42.440 回答
1

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

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

于 2012-06-16T12:50:59.277 回答
1

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

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

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

于 2012-06-16T12:52:20.043 回答