相同域名下的cookie污染
- 问题描述
本地用同一个tomcat调试两个相同框架的不同项目,在同一个浏览器界面里切换时,A项目的登录会把B项目的登录给踢掉,翻反过来亦如此。通过查看浏览器cookie,发现两个项目的cookie完全一模一样,只是值不同而已。
- 原因解析
通过查询资料大致可以了解到,如果是首次登录,服务器会创建sessionId返回给浏览器,浏览器会将sessionId保存为JSessionId,下次发起访问的时候会把sessionId带上,服务器通过判断是否存在sessionId,如果不存在则跳转登录页,存在则进行业务操作。所以A项目登录之后B项目接着去登陆,服务器返回给B项目一个新的sessionId,浏览器获取到之后会覆盖掉A项目的,等到A发起下次请求的时候,把覆盖掉的sessionId发送给服务器,服务器检测不到该sessionId,会以为sessionId已经过期,所以重定向到登录页。 - 解决方法
方法一
设置不同域名,可以设置两个项目的域名不同,也就是区分到不同服务器上。
如:http://projectA.com:7777/
http://projectB.com:8080/
方法二
设置不同的应用名称,不是通过根路径的方式访问(未验证过)
如:http://ip1:7777/projectA
http://ip1:8080/projectB
方法三
设置cookie的别名1、通过在contex中设置:
<Context sessionCookieName="jss" >
2、或者通过java虚拟机参数
-Dorg.apache.catalina.SESSION_COOKIE_NAME=jss
3、或者动过设置:
System.setProperty("org.apache.catalina.SESSION_COOKIE_NAME", "jss");
相同域名下的cookie污染的更多相关文章
- 项目中出现多个域名下的Cookie
前言:我们在查看一个项目的Cookie时,有时会看到多个域名下的Cookie,如下图: 其中一种常见的原因是:因为我们在项目中引用了另一个项目的资源.如下图: 重点:浏览器的一种默认机制:如果我们引用 ...
- 跨域(cross-domain)访问 cookie (读取和设置)
Passport 一方面意味着用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去.坦白说,目前 sohu passport 在这一点实现的很烂(不过俺的工 ...
- 在IIS上新发布的网站,样式与js资源文件加载不到(资源文件和网页同一个域名下)
在IIS上新发布的网站,网站能打开,但样式与js资源文件加载不到(资源文件和网页是同一个域名下,例如:网页www.xxx.com/index.aspx,图片www.xxx.com/pic.png). ...
- 浅析单点登录,以及不同二级域名下的SSO实现
一家公司有多个产品线,就可能要有多个子域名,下头以baidu域名为例,a.baidu.com, b.baidu.com.com 是顶级域名,baidu 就是一个二级域名,a和b就是子域名. 当用户在a ...
- 让个人域名下GithubPage完美支持https
让个人域名下GithubPage完美支持https 欢迎访问完美HTTPS支持的GithubPage个人博客 : https://zggdczfr.cn/ 前言 最近笔记本挂了送去维修,耽误了我的学习 ...
- 聊一下,前后分离后带来的跨域访问和cookie问题
在谈前后分离前,我们先看看什么是前后一体的.当我们用javaweb开发网站时,最终我们渲染的jsp或者springthymeleaf.我们的页面其实是WEB-INFO或者templates下.当用户请 ...
- Ajax跨域请求附带Cookie/Ajax跨域请求附带身份凭证
一.跨域请求中默认不带cookie等验证凭证 尤其对于post请求. 对于ajax请求,其中post,get都可以正常访问. withCredentials: false, // 允许携带cookie ...
- node(koa2)跨域与获取cookie
欲做一个node 的网关服务,通过 cookie 做信息传递,选择框架 koa2,这里简单记录跨域处理以及 cookie 获取. 首先:解决跨域问题,使用 koa2-cros 来处理,跨域问题后端处理 ...
- 关于jsonp跨域过程中 cookie中的值一直为null的原因
今天技术交流群里的小伙伴一直被一个问题而困扰,就是写入cookie里面的值 再次进行请求时 cookie 就为空了 他被问题纠结了一天 我也好奇了一天 终于在快下班的时候 他解决掉了 下面我来收一个 ...
随机推荐
- MySQL数据库无法使用+号连接字符串的处理方法
转自:http://www.maomao365.com/?p=10003 摘要: 下文讲述MySQL数据库,字符串连接的方法分享,如下所示:实现思路: 使用concat函数对两个字符串进行连接在MyS ...
- 详解YUV数据格式
我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包括YUV播放器.简单的YUV格式介绍. 一.YUV简介 YUV,是一种颜色编码方法.常使用在各个影像处理元件中. YUV在对照片或影片编码 ...
- python 连接数据库,查询结果写入数据到excel
使用Python链接数据库查询数据,并将查询结果写入到Excel中,实现方法上主要有两步,第一,查数据,第二,写Excel. 一.导入需要的包 import time import xlwt from ...
- Pwn-level3
题目地址 https://dn.jarvisoj.com/challengefiles/level3.rar.2047525b05c499c9dd189ba212bba1f8 借鉴 https://w ...
- pytorch 创建tensor的几种方法
tensor默认是不求梯度的,对应的requires_grad是False. 1.指定数值初始化 import torch #创建一个tensor,其中shape为[2] tensor=torch.T ...
- 训练自己数据-xml文件转voc格式
首先我们有一堆xml文件 笔者是将mask-rcnn得到的json标注文件转为xml的 批量json转xml方法:https://www.cnblogs.com/bob-jianfeng/p/1112 ...
- 洛谷 P5595 【XR-4】歌唱比赛
洛谷 P5595 [XR-4]歌唱比赛 题目传送门 题目描述 小 X 参加了一场歌唱比赛. 经过一路鏖战,小 X 终于挺进了决赛,他的对手是小 Y. 这场歌唱比赛的冠军是由点赞数决定的,谁的点赞数高, ...
- mysql里的insert
insert不跟where 比如 insert into table (name) value('******')where id =1 肯定不行的 insert 语句 是插入语句,不跟条件的. 如果 ...
- angular设置全局变量,修改监听变量
创建service.module.ts import { NgModule, ModuleWithProviders } from '@angular/core'; import { SomeShar ...
- ionic4 ion-picker用法
ion-picker实际开发中肯定多处使用,所以封装成服务的形式调用 新建picker.service服务模块 ionic g service picker import { Injectable ...