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


Php - Browser cache and authentification

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

我试图在用户登录时禁用缓存(

带有标题("缓存控制:无缓存,必须重新验证")),但它带来了太多问题,所以我的实际解决方案是禁用我所有页面上的缓存,当用户登录与否。

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

我在 html5 缓存清单中找到了一些东西,但它似乎已经被弃用了......反正也行不通。

我想到了另一种解决方案,当用户登录时在每个 url 中放置一个令牌,但这让我有点困扰。

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");

放置文件头

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

例如mydomain.com/privateurl.html?userid=123562