Html 防止";还原选项卡";从访问会话存储

Html 防止";还原选项卡";从访问会话存储,html,security,session,session-storage,Html,Security,Session,Session Storage,sessionStorage非常适合在网页会话的整个生命周期内轻松快速地保存会话相关数据。但是,当浏览器选项卡关闭,但有权访问浏览器“最近的选项卡”部分的任何人重新打开时,他们可以再次访问会话数据 是否有任何方法将某些会话存储数据标记为“恢复选项卡时不保存”,或者我是否应该尝试其他方法?例如,会话cookie在这种情况下是否会更安全地执行?使用会话cookie。如果未设置Expires或Max Age属性,则浏览器关闭后将被指示删除cookie。但是,这仅在关闭整个浏览器窗口后才起作用 Cook

sessionStorage非常适合在网页会话的整个生命周期内轻松快速地保存会话相关数据。但是,当浏览器选项卡关闭,但有权访问浏览器“最近的选项卡”部分的任何人重新打开时,他们可以再次访问会话数据


是否有任何方法将某些会话存储数据标记为“恢复选项卡时不保存”,或者我是否应该尝试其他方法?例如,会话cookie在这种情况下是否会更安全地执行?

使用会话cookie。如果未设置
Expires
Max Age
属性,则浏览器关闭后将被指示删除cookie。但是,这仅在关闭整个浏览器窗口后才起作用

Cookie的范围是整个浏览器,而不是单个选项卡。如果浏览器已关闭,然后选项卡从历史记录中恢复,则会话Cookie将消失。如果在浏览器未关闭的情况下关闭并重新打开选项卡,则会话cookie将保持不变


更新:Firefox的“恢复会话”和Chrome的“继续我离开的地方”功能几乎忽略了规范(RFC-2109)。请记住这一点,并自行承担使用风险。

您应该在合理的时间内终止会话,因为服务器无法知道cookie是从活动浏览器会话还是从还原的浏览器会话发送的。您是否询问用户完全退出浏览器并稍后再次启动浏览器的情况,浏览器会记住打开的选项卡吗?或者用户点击标签上的X,然后说“oops”,然后从“最近关闭的标签”菜单中恢复?@Gumbo:实际上,服务器根本不应该得到cookie。恐怕这是一项安全要求,用户需要确保某些个人详细信息不会在网上传播。@Wyzard:如果用户在选项卡上单击X,则会显示“oops”。我知道这听起来可能会损害用户体验,但也有可能用户不会说“oops”,但稍后使用浏览器窗口的其他人会看到。您无法控制浏览器处理会话cookie的方式,例如。g、 ,它是否决定在会话cookie的生存期之后存储会话cookie(例如,它在关闭后恢复会话cookie)。教育您的用户禁用这些功能或使用匿名模式。谢谢您的回复。所以,这就是我试图解决的问题。我需要的信息消失,尽快关闭标签,但存在跨页面刷新。你知道我可以利用的本地功能吗?我在这里参加聚会的时间已经很晚了,但因为我面临着这个问题,我可以确认Firefox和Chrome确实会在使用“还原会话”功能时还原cookie(甚至是“安全”cookie,从FF4开始),即使浏览器已经关闭。这使得这个答案现在非常错误(不过我想它在发布时是正确的)。来源:@sensei是的,FF“恢复会话”和Chrome“继续我离开的地方”是对RFC-2109的公然违反,RFC-2109规定了“预期”行为。我已经用这个警告更新了我的答案。