2012-02-01 49 views
0

我正在一个网站上工作,在这个网站上,我想在Logout Successful页面加载时关闭浏览器窗口/选项卡。我这样做是因为在注销工作流程之后,如果在浏览器上按下“返回”按钮,它将显示前一页,其中可以看到所有保密信息。由于我在相应的servlet中清除了会话,因此用户在注销后无法执行任何操作,但显示的数据非常重要。java script not chrome

对于这个章节目标我使用下面的代码(Logout.jsp) -

<body onload="self.close();"> 
<center> 
    You have been successfully logged out.<br> 
</center> 
</body> 

的问题是,上面的代码在IE但是做工精致,它不工作在Firefox和Chrome。我检查了所有与Java Script for Chrome相关的设置,它们与我的浏览器完全相同。

另外,我试图清除历史。为此目的,我使用下面的代码,我发现在某些网站上 -

<body onload="window.history.forward(0)"> 
<center> 
    You have been successfully logged out.<br> 
    Kindly close the browser for security reasons.<br> 
</center> 
</body> 

但是,此代码不适用于任何浏览器。

任何形式的帮助,将不胜感激。

---------------- UPDATE ---------------

对于第二个选项(即清算历史)经过大量的谷歌和工作,我能够使其工作。解决方案如下 -

如果用户按照导航page1 - > page2。而要停止从第2页用户返回到第1页,然后添加以下代码在第1页 -

<body onload="window.history.forward();"> 
    //rest of the body 
</body> 

我测试了它在IE浏览器,发现它完美的工作。

现在,我留下原始问题,为什么脚本不能在Chrome中工作。

回答

1

不要这样做。只需验证会话是否存在。如果没有(因为它已注销),您会自动将其发送到登录页面。这样,您的网站是黑客证明,因为我可以从萤火虫或任何控制台消除你刚刚关闭我的标签,因此我仍然可以看到数据。

+0

我在每个servlet的开头检查会话的存在。如果会话不存在,则会显示错误页面。现在,当我按下后退按钮时,它会显示数据(上一个),但是当我刷新页面时,它会进入错误页面。 – 2012-02-01 10:59:23

+0

比在会话中注销日期的安全性更高,如果设置并且小于当前日期,则将其发送到错误页面。对除登录页面以外的所有页面执行此操作,如果他登录,则删除会话注销日期(如果有)。其他解决方案是保持cookie。或者在注销时将其发送到具有重定向的页面。这样,每次他点击后退按钮时,他都会自动发送出去,所以永远不会达到登出状态。 – khael 2012-02-01 13:17:07

+0

解决了数据可见性问题(至少针对IE)。请参阅我上面的更新。现在我唯一担心的是为什么当它在IE中完美工作时,相同的java脚本在Chrome和FireFox中不起作用。有什么需要做的设置,我错过了吗? – 2012-02-02 09:34:31