让我先来描述一下这个情况。一位用户第一次请求一个web页面,web应用弹出登录窗口提示用户登录,用户输入用户名,密码,验证码后服务器进行判断,正确后,返回用户请求的页面。

    此时,用户有事需要离开一会儿,担心别人使用自己的账户,为了安全,用户需要退出,这时用户有两种方法保证账号安全,一种是关闭浏览器,一种就是我们程序员需要做的事情了:

用户点击退出,弹出消息框提示用户是否要退出?确定后,后台服务器需要清除此用户对应的seession,这样虽然保证了此用户不能够再次操作页面相应权限的功能(是web项目不同情况而定,如果是MIS管理系统的话,则需要跳转到登录界面。)。但是浏览器的history这会大大影响用户的体验,现在的浏览器默认都是有历史记录的,用户可以点击浏览器左上角的返回键,再次返回到上一个页面(用户们就会想:“这东西安不安全哦?”),如果我们没有处理这一情况,程序员们就会发现一个奇怪的现象,就是你能发挥到退出之前的页面,如果你操作页面,弹出的登录窗口就会内镶到这个历史页面,一层套一层。这就是因为我们在退出之后没有清除上一个页面的历史记录,这个事情就需要交给我们的javascript来做。

下面来直观的表示这一流程:

登录---》验证---》通过[服务器创建一个对应的唯一Session]

退出---》确认---》[服务器清除想对应的Session],浏览器清除上一个页面的历史记录。

比如我们有main.jsp和login.jsp(功能大家看名字就懂得)

我们在main.jsp中点击退出后,跳转到login.jsp。我们需要在login.jsp中写上这么一句简单,但不好找的话

<!-- 清除上一个页面的历史记录 -->
<script type="text/javascript" charset="UTF-8">
window.history.forward(1);
</script>

上面的后台怎么操作?大家都知道的,就不贴出来了,我用的是Spring3.0框架。如有更好的建议,期待大家提出哦,共同学习。
这是我带的一个XXX管理系统:注*:非商业项目,版权归本项目组所有(部分参考图)遇到了上述情况,已解决。




WEB应用如何解决安全退出问题的更多相关文章

  1. 正确优雅地解决用户退出——JSP及Struts解决方案

    摘要       在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法.现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一 ...

  2. 解决log4cxx退出时的异常

    解决log4cxx退出时的异常(金庆的专栏)如果使用log4cxx的FileWatchdog线程来监视日志配置文件进行动态配置,就可能碰到程序退出时产生的异常.程序退出时清理工作耗时很长时,该异常很容 ...

  3. 利用IIS部署WEB网站以及解决CSS/JS不能显示问题

    利用IIS部署WEB网站以及解决CSS/JS不能显示问题 转载声明:http://blog.sina.com.cn/s/blog_a001e5980101b4kt.html vs中正常IIS发布网站后 ...

  4. 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法

    title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...

  5. 【Maven】【IDEA】在idea中开发web项目,解决maven的jar包冲突的方法

    在idea中开发web项目,解决maven的jar包冲突的方法 第一步: 先对项目进行 clean ,再进行install 第二步: 出现NoSuchMethodException,ClassNotF ...

  6. “无法启动IIS Express Web服务器”的解决办法

    “无法启动IIS Express Web服务器”的解决办法 听语音 原创 | 浏览:259 | 更新:2019-07-15 13:02 1 2 3 4 5 6 7 分步阅读 在使用visual stu ...

  7. SRX550路由器缓存满了无法在web页面操作解决方法

    SRX550路由器缓存满了无法在web页面操作解决方法   首页出现下图为满的标志,我这个文档就是解决这中情况,让web页面可以操作的 1.  打开命令行,输入用户密码,进入路由器 注意:这里使用te ...

  8. IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏

    IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...

  9. Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules的解决办法

    前提:用eclipse做项目,新建“Dynamic Web Project”时,“Dynamic web module version”栏里选了3.0版本,部署项目的时候出现了如题的错误. 解决办法: ...

随机推荐

  1. POJ 1330 Nearest Common Ancestors LCA题解

    Nearest Common Ancestors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19728   Accept ...

  2. Java数据类型BooleanDemo

  3. Jquery 实现动态加入table tr 和删除tr 以及checkbox的全选 和 获取加入TR删除TR后的数据

    关于jquery实现动态加入table tr的问题我也不多说了 上面代码非常多地方都有凝视的 关于返回的 编辑后的table 数据 我这里想说的是我直接把他保存成一个连接起来的字符串了 格式 str= ...

  4. PHP - 抓取电视剧资源

    <?php /** * 获取下载url * @return [type] [description] */ function getVedioDwonloadUrl() { for ($i=1; ...

  5. eclipse+python+Anaconda ML环境搭建

    整个流程按照这个来: http://blog.csdn.net/olaking/article/details/42435451 你会发现pydev安装不了,听说服务器被和谐了,下面这篇文章告诉你如何 ...

  6. C#_会员管理系统:开发六(数据搜索)

    增加界面中的搜索功能 会员资料管理界面(VIPManager.cs): 详细代码如下: using System; using System.Collections.Generic; using Sy ...

  7. 小猪猪C++笔记基础篇(四)数组、指针、vector、迭代器

    小猪猪C++笔记基础篇(四) 关键词:数组,Vector. 一.数组与指针 数组相信大家学过C语言或者其他的语言都不陌生,简单的就是同一个变量类型的一组数据.例如:int a[10],意思就是从a开始 ...

  8. IP数据包结构

    Linux 网络编程——IP 数据报格式详解 http://www.linuxidc.com/Linux/2015-04/116149.htm

  9. ubuntu15.04安装hexo

    首先吐槽一下npm淘宝源,貌似中国目前唯一一个npm源,现在不好用了,不知道是不是换了地址,在吐槽一下万恶的墙!你懂得. 好了,说点正儿八经的事儿. 之所以安装hexo也是为了创建自己的博客,我只说最 ...

  10. 4.5 HOOK分发函数

    4.5 HOOK分发函数 本节开始深入的探讨键盘的过滤与反过滤.有趣的是,无论是过滤还是反过 滤,其原理都是进行过滤.取胜的关键在于:谁将第一个得到信息. 黑客可能会通过修改一个已经存在的驱动对象(比 ...