程晓晖

博客园 首页 新随笔 联系 订阅 管理

将用户限制在框架内,防止直接访问页面地址      应用情景:用户组权限控制。在一个系统中,防止用户直接访问页面地址,只能在首页如main.jsp框架页面中操作,一旦尝试刷新框架页面或者在地址栏中尝试访问系统中的其他页面,就注销跳回登陆页面。
      比如工行的网银,就有这样的措施。用户登录以后,就在一个index.jsp框架中,即使知道某个功能页面A.jsp,在地址栏中输入并跳转,立刻就会注销跳回登录页面。

      近日在修改系统一个小问题时,就碰到了这样的问题,系统有session判断,但是对用户组权限并没有限制,就意味着存在如下可能,普通用户知道某个系统管理页面地址后,用普通用户登录后,直接访问地址就能实现系统管理功能了。
      如何方便的解决这个问题?我采用了上面的思路。登录后进入main.jsp框架页面,所有操作都在框架中实现。在框架中加入如下js(注销暂时不加入)
      window.onunload=function(){
           alert(“谢谢使用”);
           top.location = “login.jsp”;
}

      这样,一旦对框架页进行刷新,或者想要直接访问页面,都会触发窗口的onunload事件,跳转页面。
      有人也许会说,那我再开个新窗口直接访问啊,但是你不要忽略了,系统是有session验证的。新开窗口就意味着新session,需要重新登录,但登录后会被强制跳转到main.jsp框架页,这时你再想访问就会触发onunload。

       但是在实际环境中,这个方法还是属于比较简单的,并且会碰到一些问题,其中一个就是刷新页面却不发生跳转,我现在这个问题是用jsp的session实现的,用到了服务端的东西。
       和工行网银的实现还是有很大差距,也没有考虑客户端禁用js的情况,因此,还有待学习:)

posted on 2010-12-10 16:16  fumen  阅读(3980)  评论(0编辑  收藏  举报