有没有办法在一个人退出但是点击"后退"按钮后保持页面不被渲染?

Tom*_*idd 23 browser asp.net security caching back-button

我有一些网站需要登录并显示敏感信息.

此人进入页面,提示登录,然后查看信息.

此人退出站点,并重定向回登录页面.

然后,该人可以"返回"并直接返回包含敏感信息的页面.由于浏览器只是将其视为呈现的HTML,因此它向他们显示没问题.

当人从登出屏幕点击"后退"按钮时,有没有办法阻止显示该信息?我不是试图禁用后退按钮本身,我只是试图阻止敏感信息再次显示,因为此人不再登录该站点.

为了便于论证,上面的站点/场景是在ASP.NET中使用表单身份验证(因此当用户转到第一页,即他们想要的页面时,它们会被重定向到登录页面 - 如果是差异).

Cla*_*sen 13

简短的回答是它无法安全地完成.

但是,有许多技巧可以实现,以使用户难以回击并显示敏感数据.

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(Now.AddSeconds(-1));
Response.Cache.SetNoStore();
Response.AppendHeader("Pragma", "no-cache");
Run Code Online (Sandbox Code Playgroud)

这将禁用客户端上的缓存,但并非所有浏览器都支持此操作.

如果您可以选择使用AJAX,则可以使用从客户端代码更新的更新面板检索敏感数据,因此在回访时不会显示敏感数据,除非客户端仍然登录.

  • 更长的答案:可以访问目标机器以便单击后退按钮的恶意人员也可能能够绕过这一措施.这将阻止获得该信息的最随意的尝试.一旦目标机器有信息,该机器就在控制之中,而不是你. (2认同)

Kor*_*nel 9

缓存和历史是独立的,不应该相互影响.

银行唯一的例外是Cache-Control: must-revalidate在历史记录中导航时,HTTPS和强制组合会刷新.

在普通的HTTP中,除了利用浏览器错误之外,没有办法做到这一点.

您可以使用document.cookie在设置"杀手"cookie时检查和重定向的Javascript来破解它,但我认为当浏览器未按预期完全设置/清除cookie时,这可能会严重错误.