关于Session互串的随笔

场景:

      一、在同一款浏览器上,先后访问同一个网站,用不同帐号登录。最后一次登录覆盖前一次登录。

      说明:这个比较容易理解。从IE7开始,各款浏览器都统一规则:不同Tab页的窗口共享一个session。

                之所以会出现上述的情况,一般是出现在one page one application的应用。

 

     二,同一个应用服务器,即同一个IP上,部署两个应用。

     说明:以Tomcat为例,其他中间件类似。

               出现的原因是,两个应用的sessionID一致,而默认sessionID是采用httpOnly的cookie保存,且没有设置domain、path。所以两个相同的host应用,对于浏览器来讲,cookie是共享的,进而sessionID也是共享的。所以会互串。

             解决方法:修改cookie的path或者domain范围。

             在Tomcat 6 ,设置server.xml的Connector节点的emptySessionPath=false。

       在Tomcat 7,emptySessionPath无效。通过Context.xml的Context节点。设置

sessionCookieDomain

The domain to be used for all session cookies created for this context. If set, this overrides any domain set by the web application. If not set, the value specified by the web application, if any, will be used.

sessionCookiePath

The path to be used for all session cookies created for this context. If set, this overrides any path set by the web application. If not set, the value specified by the web application will be used, or the context path used if the web application does not explicitly set one. To configure all web application to use an empty path (this can be useful for portlet specification implementations) set this attribute to / in the global CATALINA_BASE/conf/context.xml file.

Note: Once one web application using sessionCookiePath="/" obtains a session, all subsequent sessions for any other web application in the same host also configured with sessionCookiePath="/"will always use the same session ID. This holds even if the session is invalidated and a new one created. This makes session fixation protection more difficult and requires custom, Tomcat specific code to change the session ID shared by the multiple applications.

参考:http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

 

              解决方法二,修改sessionID的cookie--name。这个方法在Tomcat6及以下版本,貌似不能设置。

             如果是Tomcat 7以上产品通过设置Context.xml的Context节点。

            

sessionCookieName

The name to be used for all session cookies created for this context. If set, this overrides any name set by the web application. If not set, the value specified by the web application, if any, will be used, or the name JSESSIONID if the web application does not explicitly set one.

             参考:http://tomcat.apache.org/tomcat-7.0-doc/config/context.html

 

           注:如果两个应用刚好部署在一个Host上,Port不同,ContextPath也一样,那么方法一是不能解决问题的,只能通过设置SessioinCookieName来解决了。

         

Ubuntu24安装MongoDB(解压版) 依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)依据前面 Linux 发行版本的信息,选择你需要的版本,文件格式选择 tgz 格式,最后点击 Download(下载到你的电脑)或 点击 Copy link 左侧图标(复制下载链接在使用服务器下载)默认情况下,只能在本机访问 MongoDB,要想远程访问 MongoDB,需要修改配置文件。 阅读详情

相关推荐

批处理脚本手动双击可以执行,但计划任务中执行失败

问题现象: 使用批处理脚本从linux端(samba server) 备份一些数据,设置计划任务每天凌晨两点定时备份。 1)、windows系统中映射共享文件夹为S:盘,需要输入共享用户名和密码 2)、脚本中使用xcopy命令复制共享目录中的文件到windows本地目录中。 脚本如下: set Name=%date:~0,4%%date:~5,2%%date:~8,2% chcp 65001 REM chcp防止中文乱码 mkdir "E:\脚本备份\bakscripts%Name%" xco

独孤清扬玩DB 4283

java两个页面session,关于Session的漫笔

场景:一、在同一款浏览器上,先后访问同一个网站,用不同帐号登录。最后一次登录覆盖前一次登录。说明:这个比较容易理解。从IE7开始,各款浏览器都统一规则:不同Tab页的窗口共享一个session。之所以会出现上述的情况,一般是出现在one page one application的应用。二,同一个应用服务器,即同一个IP上,部署两个应用。说明:以Tomcat为例,其他中间件类似。出现的原因是,两个应...

weixin_35740545的博客 1020

AD22里面封装修改后,同步到PCB图里面

【摘要】本文介绍了Altium Designer 22中同步更新元件封装的三种方法:1)从PCB库直接更新:在PCB库面板右键选择"Update PCB With[封装名]";2)通过原理图标准更新:使用Design->Update PCB Document菜单;3)在PCB编辑器中验证更新:通过Tools->Update From PCB Libraries菜单。所有方法最终都需通过ECO(工程变更订单)确认变更,建议执行前仔细核对变更内容。这些方法适用于AD22及早期版本

whm128的博客 1643

session的问题以及解决方法

<br />什么是session的问题  <br />典型案例:现有一Web系统,用用户A登录,打开修改页面Page1,然后通过菜单文件-》新窗口打开一个窗口,用用户B登录,然后回Page1页面提交,此时身份已经变为用户B,出现非希望的结果。这就是session的问题。<br /><br />如何解决Session的问题<br />解决Session的问题需要使用URL重写的技术,下面介绍一下什么是<br />(1)URL重写<br /> 什么是URL重写<br />  URL重写包括向URL路径添

燕窝 4362

细挖session,观察jsp页面跳转时session其ID的变化

了解session: HTTP协议是一种无状态协议。一个用户向服务器发出请求(request),然后服务器返回响应(response),在服务器端不保留用户的有关信息,因此当下一次发出请求时,服务器无法判断这一次请求和以前的请求是否属于同一用户。 ★Tomcat服务器可以使用内置session对象(会话)记录用户的信息。内置对象session由Tomcat服务器负责创建. 服务器为每一个用户创建一个session对象,并为session对象分配一个String类型的ID,Tomcat服务器将ID.

hey,欢迎浏览我的博客,希望能给你提供帮助。 1348

java两个页面session_同一个游览器中,同一个web系统,两个选项卡,session,如何解决?求大神给个'认真'的解决方案...

一般web应用在同一个浏览器中肯定只能存在一个用户,比如OSC 我之前登陆过了,再次进入osc还是以我的账号进入。如果要登录另外一个用户,只能注销再次登录。思路如下:搞一个全局过滤器,如果之前有用户A session存在了,新标签页进入该系统还是以用户A的身份进入系统。就算用户直接进入登陆页面也自动进入首页。以下是我自己的实现,可以参考下,是过滤器public void doFilter(......

weixin_35172715的博客 965

会话Sessions mixed-up

场景: 1-打开一个Tab,用Admin登录系统 2-再打开一个Tab,用User登录系统 3-退回Admin的Tab,操作数据 此时的用户已经不是Admin而是User了。 ※早期主流浏览器没有选项卡,开创选项卡浏览器的是国人二次开发的MyIE。 不理解Session与Cookie的先补补这部分知识。 [img]http://dl2.iteye.com/upload/attac...

Fish Where The Fish Are 235

什么是session的问题

 什么是session的问题 典型案例:现有一Web系统,用用户A登录,打开修改页面Page1,然后通过菜单文件-》新窗口打开一个窗口,用用户B登录,然后回Page1页面提交,此时身份已经变为用户B,出现非希望的结果。这就是session的问题。 如何解决Session的问题 解决Session的问题需要使用URL重写的技术,下面介绍一下什么是URL重写 什么是URL重写     URL重

DiscussQuestions的专栏 1704

Spring Security多端登录踢功能的Token与Session设计思路

本文介绍了 Spring Security 中多端登录踢功能的两种实现方案:基于 Session 和基于 Token。基于 Session 的方案实现简单,但依赖 Session,不适合分布式环境。基于 Token 的方案无状态,易于扩展,适合分布式环境,但实现相对复杂。选择哪种方案取决于具体的应用场景和需求。如果应用是单体的,对性能要求不高,可以选择基于 Session 的方案。如果应用是分布式的,对性能要求高,可以选择基于 Token 的方案。

weixin_41455464的博客 718

C# Session 解决方案

SessionID 属性用于唯一地标识在服务器上包含会话数据的浏览器。 SessionID 值由 ASP.NET 随机生成。 ASP.NET 可唯一标识每个浏览器使用的会话。默认条件下,会话的唯一标识符存储在浏览器的不过期会话 Cookie 中。 说明 要提高应用程序的安全性,您的应用程序必须允许用户注销,以便此时它可以调用 Abandon 方法。这样可以减少不必要代码使用

763

关于session

关于session: 最近在用IE浏览器调试不同用户所拥有的权限功能,出现了sessionsession,主要的流程结构如下: 解决方法: 在IE快捷方式上点击鼠标右键》属性》快捷方式》目标:"C:\Program Files\Internet Explorer\iexplore.exe" -nomerge这样就可以了。 记得-nomerge与路径前面要有空格。 ...

BigData 582

shiro session踢,一个用户只能一处登录

shiro 实现redis共享session, 一个用户只能一处登录 shiro 核心类AuthorizingRealm, 自己写一个类AuthRealm继承AuthorizingRealm @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws Authe...

liuzhen_333的专栏 7461

asp.net session 号 变值

asp.net session 号 变值

黎陶宏 2064

session测试的测试点

session测试的测试点 1.session的创建时间点 是打开浏览器访问开始创建session?还是用户登陆时开始创建session? 还是其它情况下创建的 2.session的删除时间点 过期文件是否删除, 关闭浏览器时,session是否会删除?当有多个窗口时,是全部关掉还是关掉一个会删除session? 3.session超时 基于Session原理,需要验证系统sessi

狂飙兔的博客 8187

EAS webservice用户、数据中心问题

一些刚开始进行webservice开发的用户,往往会碰到用户、数据中心的问题。相关问题表现为webservice切换用户、数据中心后登陆,但实际登陆的用户还在切换前的用户、数据中心。导致系统会报诸如 没有权限、未找到用户之类的报错,或者导入的数据不正确。    相关问题为未启用安全模式,系统调用前面的登陆返回信息引起。解决办法就是启用webservice安全模式。启用安全模式参考附件文档。

douml88的专栏 3643

Cas实现子系统登录

实现思路 1.一个类,类中维护着一个已登录用户的map,每次登录取出上次该用户对应的session;并给session添加一个过期的属性标识lastHttpSession.setAttribute(BE_KICKED,"您的账号在另一地点登录,您被迫下线") 2.写一个sessionFilter,该sessionFilter取出每个request请求实例中维护的session,判断sessio...

大脸猫的博客 1354

解决IIS Web园 模式下 网站session用的问题

IIS 会话状态模式设置默认是在进程中的,   在Web园(即应用程序池最大工作进程数大于1的情况)模式下,有可能发生session用的问题,如用A帐号登陆网站,退出回到登陆界面,再用B帐号登陆,此时多次刷新页面,有时显示登录用户是A,有时显示登录用户是B,这是因为session保存在不同的w3wp进程中,所以发生这种情况。   解决办法是将会话状态保存在状态服务器(需开启ASP

lizhixiong2的专栏 5587

变化检测-基于多重形态学实现的高光谱变化检测算法-附项目源码-优质项目实战.zip

变化检测_基于多重形态学实现的高光谱变化检测算法_附项目源码_优质项目实战

GraphPadPrism5 科学绘图软件

GraphPadPrism5 科学绘图软件 适合SCI期刊发表

上一篇: Eclipse的Tomcat热部署,免重启的方法
下一篇: ANT压缩JS
iteye_12186
博客等级 码龄8年 1粉丝 47原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值