我有一些网站需要登录并显示敏感信息.
此人进入页面,提示登录,然后查看信息.
此人退出站点,并重定向回登录页面.
然后,该人可以"返回"并直接返回包含敏感信息的页面.由于浏览器只是将其视为呈现的HTML,因此它向他们显示没问题.
当人从登出屏幕点击"后退"按钮时,有没有办法阻止显示该信息?我不是试图禁用后退按钮本身,我只是试图阻止敏感信息再次显示,因为此人不再登录该站点.
为了便于论证,上面的站点/场景是在ASP.NET中使用表单身份验证(因此当用户转到第一页,即他们想要的页面时,它们会被重定向到登录页面 - 如果是差异).
假设我有一个ASP.NET应用程序在负载均衡器后面的几个Web服务器上运行:
我可以吗:
强制OutputCache(页面和/或控制级别)全局到期?
强制数据缓存(即Cache.Insert)到期?
从中央位置监控ASP.NET缓存使用情况(密钥,RAM等)?
一种可能的解决方案是使每次缓存使用检查文件依赖性以进行更改.可以触摸该文件,该文件将使所有缓存失效.但是,这要求开发人员在所有代码中包含依赖项.他们是更好的解决方案吗?
<script type="text/javascript">
{
function DisableBackButton() {
window.history.forward()
}
DisableBackButton();
window.onload = DisableBackButton;
window.onpageshow = function (evt) { if (evt.persisted) DisableBackButton() }
window.onunload = function () { void (0) }
}
</script>
Run Code Online (Sandbox Code Playgroud)
我在母版页中使用以下代码来缩放后退按钮.
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";
Page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
Run Code Online (Sandbox Code Playgroud)
我有一个主页,在该注销按钮是一旦用户点击该用户将被重定向到注销页面.这工作正常,一旦我点击后退按钮,它带我到我浏览的最后一页.即使我试过的JavaScript.
我在5分钟后创建会话超时.当会话到期时,用户将被重定向到会话到期页面,还有后退按钮带我到浏览的最后一页.