cookie没有携带的问题

news2024/10/7 2:26:34

背景:

build-model应用在hcs迁移的时候,前、后端各自部署了一个新应用,但是调试时候发现没有cookie,导致鉴权失败!

注: 后端通过cookie中的token做鉴权的,前端调用接口的时候,查看,发现没有cookie。

前端已经设置:axios.defaults.withCredentials = true

以为是Access-Control-Allow-Headers没有cookie的字段所以限制,没有cookie的问题,或者后端有其他限制条件,导致cookie携带失败,跟后端沟通后,发现后端并没有限制cookie的鞋带,所以跟后端没关系。
在这里插入图片描述
前端应用:http://build-model-hcs.fnwtest.enncloud.cn
后端服务:http://cim-build-model-hcs.test.fnwintranet.com

迁移前的地址分别为:
前端:http://build-model-hcs.fnwtest.enncloud.cn
后端:是区分泛能和交付平台的:

  1. 泛能网调用:http://cim-build-model.test.fnwintranet.com
  2. 交付平台调用:http://cim-build-model.fnwtest.enncloud.cn

考虑:

  1. 浏览器禁用三方cookie
  2. 后端有某些限制,不可以设置cookie。目前看后端没限制,没携带cookie就是前端的额。

跨域请求如何携带cookie?

前端请求时在request对象中配置"withCredentials": true;
服务端在response的header中配置"Access-Control-Allow-Origin", “http://xxx:${port}”;
服务端在response的header中配置"Access-Control-Allow-Credentials", “true”

跨站、跨域、cookie注入

简述

之前对cookie相关知识一直零零碎碎,最近工作中遇到些相关问题,于是又整体重新梳理了一面,算是一个总结。主要介绍如何跨域、跨站注入cookie,以及踩过过的一些。

本文所用到的虚拟URL说明

http://dev.proxy.com:3000/ 浏览器访问URL

http://dev.fws.proxy.com:3001/ 跨域接口URL

http://dev.other.com:3001/ 跨站接口URL

概念

跨站(cross-site):两个 URL 的 eTLD+1 相同即可,忽略协议、端口(不满足即跨站)

跨域(cross-origin):两个 URL 的协议/主机名/端口一致(不满足即跨域)

跨站一定跨域,跨域不一定跨站

Domain: 只能设置当前域、主域

1、默认当前完整域前面不会加点,完全匹配

2、手动设置时前面加不加点浏览器都会解析为加点,即domain域、子域都携带

eg: 访问http://dev.fws.proxy.com ,domain = proxy.com 或者 dev.fws.proxy.com

Path:请求必须包含path,才会携带本次注入的cookie

SameSite: 默认Lax

1、设置None必须存在Secure

2、跨站注入cookie 则必须设置None

跨站注入cookie

1、需是https 协议.

2、set-cookie:_token=xxxxxx;domain=other.com;path=/;SameSite=None:Secure

3、服务端进行相关跨域配置

  res.header("Access-Control-Allow-Origin", "http://dev.proxy.com:3000");

  res.header("Access-Control-Allow-Headers", "X-Requested-With");

  res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");

  res.header("Access-Control-Allow-Credentials", true)

注意:Access-Control-Allow-Origin 必须指定具体域,不能设置 *

         Access-Control-Allow-Credentials 必须 true

4、web访问 withCredentials:true

跨域注入cookie

1、http、https协议均可

2、set-cookie:_token=xxxxxx;domain=.proxy.com;path=/

3、服务端跨域设置同上

4、web访问 withCredentials:true 否则无法注入cookie

小节:

1、跨域访问 web必须 withCredentials:true,默认浏览器是不携带cookie

2、服务跨域配置

3、path 必须要手动指定
参考:https://blog.csdn.net/Trifling_/article/details/119491330

结论:
跨站,且是http协议的,那么设置withCredentials,也是无效的,还是不会携带cookie。

运维或者后端配置一个同domain的地址即可。

参考:https://zhuanlan.zhihu.com/p/580644048

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1646833.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我是如何带团队从0到1做了AI中台

经历心得 我从18年初就开始带这小团队开始做项目,比如最初的数字广东的协同办公项目,以及粤信签小程序等,所以,在团队管理,人员安排,工作分工,项目拆解等方面都有一定的经验。 19年中旬&#…

微搭低代码入门03页面管理

目录 1 创建页面2 页面布局3 页面跳转总结 上一篇我们介绍了应用的基本操作,掌握了应用的概念后接着我们需要掌握页面的常见操作。 1 创建页面 打开应用的编辑器,在顶部导航条点击创建页面图标 在创建页面的时候可以从空白新建,也可以使用模…

第78天:WAF攻防-菜刀冰蝎哥斯拉流量通讯特征绕过检测反制感知

目录 案例一: 菜刀-流量&绕过&特征&检测 菜刀的流量特征 案例二:冰蝎-流量&绕过&特征&检测 冰蝎使用教程 冰蝎的流量特征 案例三: 哥斯拉-流量&绕过&特征&检测 哥斯拉使用教程 哥斯拉的流量特征…

龙迅LT9211D MIPI桥接到2 PORT LVDS,分辨率支持高达3840*2160*30HZ

龙迅LT9211D描述: Lontium LT9211D是一款高性能的MIPI DSI/CSI- 2到双端口LVDS转换器。LT9211D反序列化输入的MIPI视频数据,解码数据包,并将格式化的视频数据流转换为AP和移动显示面板或摄像机之间的LVDS发射机输出。LT9211D支持最大14 dB输…

基于Springboot+Vue+Java的学生就业管理系统

💞 文末获取源码联系 🙉 👇🏻 精选专栏推荐收藏订阅 👇🏻 🎀《Java 精选实战项目-计算机毕业设计题目推荐-期末大作业》😘 更多实战项目~ https://www.yuque.com/liuyixin-rotwn/ei3…

MYSQL基础架构、执行过程分析、事务的实现、索引的选择、覆盖索引

本文是mysql45讲的1-5的总结 文章目录 基础架构连接器分析器优化器执行器SQL查询执行过程详细执行步骤 SQL更新执行过程重要的日志模块:redo log重要的日志模块:binlog阶段性提交 事务事务隔离的实现启动 索引数据库索引模型InnoDB索引组织结构主键选择…

电源小白入门学习7——USB充电、供电、电源路径管理

电源小白入门学习7——USB充电、供电、电源路径管理 USB充电系统需要考虑的因素开关充电和线性充电充电路径管理输入限流路径管理(动态功率管理)理想二极管帮助提高电池利用率输入过充抑制 上期我们介绍了锂离子电池的电池特性,及充电电路设计…

字节跳动(社招)三面算法原题

TikTok 喘息 继上月通过强制剥离 TikTok 法案后,美国众议院在当地时间 20 日下午以 360 票赞成 58 票反对通过了新的法案:剥离 TikTok 的期限由生效后 165 天调整至 270 天之内,即今年 11 月的美国总统大选后。 之前我们讲过,TikT…

[安全开发]如何搭建一款自己的网安微信机器人

前言 hxd写的一个微信网安机器人。 原理 基于HOOK的微信机器人,以往的机器人大多数为协议机器人,封号概率极大(下面会详细讲解hook和协议的区别),而HOOK机制的大大减小了封号几率。 什么是协议机器人? …

腾讯云服务器产品特惠集合

腾讯云服务器近期推出了多项特惠活动,以满足不同用户的需求。以下是一些主要的特惠信息: 特惠产品合集页 精选特惠 用云无忧 腾讯云提供了极具竞争力的价格。例如,用户可以找到2核2G3M配置的云服务器,月费低至5.08元;…

【C++之map的应用】

C学习笔记---021 C之map的应用1、map的简单介绍1.1、基本概念1.2、map基本特性 2、map的基本操作2.1、插入元素2.2、访问元素2.3、删除元素2.4、遍历map2.5、检查元素是否存在2.6、获取map的大小2.7、清空map2.8、基本样例 3、map的基础模拟实现4、测试用例4.1、插入和遍历4.2、…

Python查询PostgreSQL数据库

哈喽,大家好,我是木头左! Python与PostgreSQL的连接 需要了解如何在Python中连接到PostgreSQL数据库。这通常涉及到使用一个库,如psycopg2,它是Python中用于PostgreSQL的最流行的适配器。安装psycopg2非常简单&#x…

[Java EE] 多线程(八):CAS问题与JUC包

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

用 Go map 要注意这个细节,避免依赖他!

有的小伙伴没留意过 Go map 输出、遍历顺序,以为它是稳定的有序的,会在业务程序中直接依赖这个结果集顺序,结果栽了个大跟头,吃了线上 BUG。 有的小伙伴知道是无序的,但却不知道为什么,有的却理解错误? 今…

Flutter笔记:Widgets Easier组件库 - 使用标签(Tag)

Flutter笔记 Widgets Easier组件库 - 使用标签(Tag) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this …

滑动窗口 | 1652. 拆炸弹 |LeetCode

文章目录 题目介绍暴力(可以过力扣竟然。不愧是简单题):滑动窗口 祝你天天开心 题目介绍 你有一个炸弹需要拆除,时间紧迫!你的情报员会给你一个长度为 n 的 循环 数组 code 以及一个密钥 k 。 为了获得正确的密码,你需要替换掉每…

【嵌入式笔试题】进程线程笔试题

非常经典的笔试题。 1.进程&线程(16道) 1.1异步IO和同步IO区别? 答案:如果是同步IO,当一个IO操作执行时,应用程序必须等待,直到此IO执行完。 相反,异步IO操作在后台运行,IO操作和应用程序可以同时运行,提高系统性能,提 高IO流量。 解读:在同步文件IO中,线…

IntelliJ IDEA 2024 for Mac:Java开发者的强大助手

IntelliJ IDEA 2024 for Mac是Java开发者不可或缺的强大助手,它凭借卓越的性能和丰富的功能,赢得了广大开发者的青睐。 作为集成开发环境(IDE)的佼佼者,IDEA 2024提供了全面的代码编辑和智能提示功能。它不仅能实时分析…

视频素材哪个软件好用?8个短视频素材高清无水印

在今日这个视觉表现至关重要的时代,获取合适的视频素材成为制作任何类型视频内容的基石。从企业宣传片到社交媒体短视频,高质量的视频素材能够显著提升内容的吸引力和专业度。这里列出了一些全球顶尖的视频素材平台,每一个都能为您的视频项目…

高效转化,智能私信软件策略揭秘

在数字营销的浪潮中,智能私信软件策略正成为提升转化率的重要工具。这种软件以其个性化、自动化的特点,正在重新定义与客户的互动方式,让企业能够更加高效地吸引并留住潜在客户。 智能私信软件的核心在于其高度的定制化和人性化设计。通过大数…