一个人在登出后点击“返回”按钮,有没有一种方法可以防止页面重新加载?(涉及IT技术)

23

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

用户进入网页后,被提示要求登录,在登录成功后才能查看信息。

用户注销网站并重定向到登录页面。

然后,用户可以单击“返回”按钮并立即返回包含敏感信息的页面。由于浏览器只是将其视为已呈现的HTML,所以会毫不费力地显示给他们。

有没有办法防止当用户从登出屏幕单击“返回”按钮时显示该信息?我不是想禁用返回按钮本身,而是想防止敏感信息因为用户已注销而再次被显示。

假设上述场景在使用ASP.NET和表单身份验证的情况下(因此,当用户访问第一个页面(即所需页面)时,会重定向到登录页面 - 如果这会产生影响的话)。

16个回答

0

0

你正在寻找一个无缓存指令:

<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

如果你已经使用了母版页设计,这可能有点棘手,但我相信你可以将此指令放在单个页面上,而不会影响网站的其余部分(假设这是你想要的)。
如果你设置了该指令,浏览器将忠实地返回服务器,寻找页面的全新副本,这将导致你的服务器看到用户未经验证并将其转到登录页面。

0

将注销操作设置为POST。这样浏览器会提示“您确定要重新提交表单吗?”而不是显示页面。


0

正确的答案涉及在响应中设置HTTP Cache-Control头。如果您想确保他们永远不会缓存输出,可以使用Cache-Control:no-cache。这通常与no-store一起使用。

其他选项,如果您想要有限的缓存,包括设置过期时间和must-revalidate,但这些可能会导致缓存页面再次显示。

请参见http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4


0

这有点费力,但如果您有一个嵌入式Java小程序或Flash应用程序,并且通过它进行身份验证,您可以使他们每次想查看信息时都必须与服务器进行“实时”身份验证。

使用此方法,您还可以加密任何信息。

总是有可能有人会保存包含敏感信息的页面,没有缓存不会解决这个问题(但是Flash或Java应用程序的屏幕截图总是可以被拍摄)。


0
在巴西一家主要的银行公司(巴西银行)中,他们以拥有世界上最安全和高效的家庭银行软件之一而闻名。他们会在每个页面上简单地放置history.go(1)。所以,如果你点击了返回按钮,你就会被带回去。很简单。

我认为可以通过使用调试器或类似工具来跳过这个命令,从而实现一种JavaScript黑客技巧。 - Alexander Prokofyev
是的,但如果用户使用小返回箭头返回3个步骤会发生什么呢?这绝不是一个好的做法。 - LordOfThePigs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接