WEB应用如何解决安全退出问题
让我先来描述一下这个情况。一位用户第一次请求一个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应用如何解决安全退出问题的更多相关文章
- 正确优雅地解决用户退出——JSP及Struts解决方案
摘要 在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法.现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一 ...
- 解决log4cxx退出时的异常
解决log4cxx退出时的异常(金庆的专栏)如果使用log4cxx的FileWatchdog线程来监视日志配置文件进行动态配置,就可能碰到程序退出时产生的异常.程序退出时清理工作耗时很长时,该异常很容 ...
- 利用IIS部署WEB网站以及解决CSS/JS不能显示问题
利用IIS部署WEB网站以及解决CSS/JS不能显示问题 转载声明:http://blog.sina.com.cn/s/blog_a001e5980101b4kt.html vs中正常IIS发布网站后 ...
- 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法
title: 把myeclipse中的web项目导入eclipse中不能编程web项目的解决办法 tags: grammar_cjkRuby: true --- 右键单击项目,properties-- ...
- 【Maven】【IDEA】在idea中开发web项目,解决maven的jar包冲突的方法
在idea中开发web项目,解决maven的jar包冲突的方法 第一步: 先对项目进行 clean ,再进行install 第二步: 出现NoSuchMethodException,ClassNotF ...
- “无法启动IIS Express Web服务器”的解决办法
“无法启动IIS Express Web服务器”的解决办法 听语音 原创 | 浏览:259 | 更新:2019-07-15 13:02 1 2 3 4 5 6 7 分步阅读 在使用visual stu ...
- SRX550路由器缓存满了无法在web页面操作解决方法
SRX550路由器缓存满了无法在web页面操作解决方法 首页出现下图为满的标志,我这个文档就是解决这中情况,让web页面可以操作的 1. 打开命令行,输入用户密码,进入路由器 注意:这里使用te ...
- IIS上虚拟站点的web.config与主站点的web.config冲突解决方法 分类: ASP.NET 2015-06-15 14:07 60人阅读 评论(0) 收藏
IIS上在主站点下搭建虚拟目录后,子站点中的<system.web>节点与主站点的<system.web>冲突解决方法: 在主站点的<system.web>上一级添 ...
- 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版本,部署项目的时候出现了如题的错误. 解决办法: ...
随机推荐
- rac 实例被莫名重启的案例分析
详见原文博客链接地址: Rac 实例被莫名重启一列分析
- FLASH ROM与EEPROM的区别
EEPROM,虽然也叫“非易失性数据存储器”,但它不能直接参与ALU运算,只是用于掉电不丢失的数据存储. EEPROM和片内RAM 类似,也属于数据存储器,它的特点是数据掉电可保持,而程序存储器一般指 ...
- 巡逻机器人(BFS)
巡逻机器人问题(F - BFS,推荐) Description A robot has to patrol around a rectangular area which is in a form ...
- BZOJ 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐( dfs )
直接从每个奶牛所在的farm dfs , 然后算一下.. ----------------------------------------------------------------------- ...
- 查锁住的表,以及kill进程,Oracle常用语句
--找出所有被锁的对象,定位出哪个回话占用 select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o ...
- CSS Filter
支持的效果有: blur(模糊) grayscale(灰度) drop-shadow(阴影) sepia(褐色滤镜) brightness(亮度) contrast(对比) hue-rotate(色相 ...
- Week3(9月23日):例子更Powerful更完整了,哇咔咔
Part I:提问 =========================== 1.控制器中动作方法的返回类型有哪些? 2.如果控制器代码如下,请问浏览器中如何输入什么路由访问? public clas ...
- oschina iOS代码库
iOS代码库 34Activity 54下拉刷新(pull-to-refresh) 143菜单 (Menu) 20位置信息(GPS/Location) 24iOS 表单 74提醒 (Notificat ...
- AzureDev 社区活动获奖者公布
今天,我们高兴地宣布 AzureDev社区活动的获奖者,并向这 5 个非盈利技术教育组织发放 10 万美元奖金.在 2013 年的Build大会上宣布的 AzureDev 活动专注于通过代码改变世界, ...
- Xcode4.5 本地化,多语言设置
网上已有很多关于ios本地化的博客和资料,由于部分原作者使用的Xcode版本较早,4.5以后的版本已不再支持该方法,后来也没有更新,因此在此写一点学习资料分享出来.废话不多说. ios本地化主 ...