Php - 浏览器缓存和身份验证

时间:2016-02-12 15:11:01

标签: php authentication caching

我有一个包含过滤内容的网站,因此我遇到了缓存问题:当具有足够权限的用户访问包含私有内容的页面时,浏览器会将私有内容放入缓存中,当用户断开连接时,私有内容仍然可见。

我尝试在用户登录时禁用缓存(带有标题(“Cache-Control:no-cache,must-revalidate”)),但它带来了太多问题,所以我的实际解决方案是禁用缓存在我的所有页面上,当用户登录或不登录时。

是否有更好的解决方案来处理问题,例如在用户登录或注销时删除网站的所有浏览器缓存的方法?

我发现了一些带有html5缓存清单的东西,但它似乎已经被弃用了......而且它无论如何都不起作用。

我想到了另一种解决方案,当用户登录时在每个网址中添加一个令牌,但这让我感到烦恼。

2 个答案:

答案 0 :(得分:2)

header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

放置文件标题

答案 1 :(得分:1)

您可以向URL添加单个参数,但有关于用户的信息,以生成缓存的新URL。 这样,当用户连接您的缓存管理器时,将充当此页面,如果它之前已连接,则会向他提供此页面。

例如1,'Steve','00:00:00.000','23:59:59.999' 3,'Steve','00:00:00.000','23:59:59.999' 4,'Steve','09:30:00.000','11:30:00.000'