java web系统安全退出后点击浏览器后退按钮还会跳转到刚才浏览页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web系统安全退出后点击浏览器后退按钮还会跳转到刚才浏览页面相关的知识,希望对你有一定的参考价值。

(不要跟我说退出后有销毁session,还有什么写监听器什么之类的,不要禁用浏览器前进后退按钮。)

参考技术A javascript+cookie 点击安全退出之后在cookie里面加一个值呗,然后别的页面里面判断cookie里面有没有这个,有的话,它访问任何页面都执行history.go(-1);但是你安全退出的页面不能判断,不然就会一直后退后退。此外部分浏览器在特定情况下后退的时候,后退页面的脚本是不执行的,也就是说会无法跳转到刚才页面。比如chrome之类的浏览器会根据缓存,不执行部分脚本。所以你要让整站都不缓存,强制刷新。
当然最好的方法还是清空session然后普通页面判断session的内容再决定是继续输出还是返回到首页还是返回到前一页。。。
参考技术B 那是浏览器缓存的原因,实际上你已经安全退出了,无法操作后台 参考技术C 浏览器的缓存,没有session了 参考技术D 用js效果。

通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?

【中文标题】通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?【英文标题】:Prevent Back Login After Logout by hitting the Back button on Browser in L5? 【发布时间】:2015-06-26 17:35:32 【问题描述】:

我的问题是当我已经注销时我想做,如果我点击浏览器上的返回按钮它永远不会返回管理主页。

现在,当我单击返回按钮时,它会显示管理员机密页面,但是当我刷新页面时,它会返回登录页面。

我解决了它在 Laravel 4.2 上的 filter.php 中编写代码

App::after(function($request, $response)

 $response->headers->set('Cache-Control','nocache, no-store, max-age=0, must-revalidate');
$response->headers->set('Pragma','no-cache');
$response->headers->set('Expires','Fri, 01 Jan 1990 00:00:00 GMT');
);

但是现在如何

【问题讨论】:

【参考方案1】:

将此行保留在登录页面的顶部。这将清除缓存并防止返回页面(pabel)

<?php echo
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');?>

【讨论】:

效果很好。谢谢【参考方案2】:

这对我有用:

将此javascript代码放在登录页面的末尾,这样您就无法返回,然后一旦系统外部无法访问之前的页面

 <script>
    window.onload = function () 
        if (typeof history.pushState === "function") 
            history.pushState("jibberish", null, null);
            window.onpopstate = function () 
                history.pushState('newjibberish', null, null);
            ;
         else 
            var ignoreHashChange = true;
            window.onhashchange = function () 
                if (!ignoreHashChange) 
                    ignoreHashChange = true;
                    window.location.hash = Math.random();
                 else 
                    ignoreHashChange = false;   
                
            ;
        
    
 </script>

【讨论】:

您能解释一下您的答案如何解决问题中的问题吗?仅代码的答案不是很有用,尤其是对于偶然发现这篇文章的更多读者。 您必须在上下文中才能理解该地方对我有用的代码,并输入我的源代码,所以不明白问题是什么......它只是复制并粘贴代码...... *** 不仅仅是复制+粘贴人们在回答问题时提供给您的代码,它还(而且主要是)学习如何做您以前不知道的事情。这就是让我们变得更好的原因,了解问题是什么以及给定的答案如何解决它。无论如何,我看到你添加了一些细节,这是向前迈出的一步。 我只是想帮助老兄,让人们来决定是不是错 :-) Cristik 有美好的一天! 我还尝试帮助您改进您的答案,详细的答案可能会比仅代码的答案获得更多的选票。你也有美好的一天。【参考方案3】:
<script>
    window.onload = function () 
        if (typeof history.pushState === "function") 
            history.pushState("jibberish", null, null);
            window.onpopstate = function () 
                history.pushState('newjibberish', null, null);
            ;
         else 
            var ignoreHashChange = true;
            window.onhashchange = function () 
                if (!ignoreHashChange) 
                    ignoreHashChange = true;
                    window.location.hash = Math.random();
                 else 
                    ignoreHashChange = false;   
                
            ;
        
    
 </script>

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于java web系统安全退出后点击浏览器后退按钮还会跳转到刚才浏览页面的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Cordova 中的 android 设备后退按钮退出应用程序?

Web 浏览器中的后退按钮如何工作?

web安全测试要点

禁用后退按钮,但是当点击两次退出应用程序时反应原生

如何防止laravel 5.2中的浏览器后退按钮

在颤动中按下移动后退按钮后网站应用程序未退出