Cookie-SameSite属性 前端请求不带cookie的问题解决方案

news2024/10/23 2:45:07

最近遇到了前端请求后端不带cookie的问题,

请求时header里面就是没有cookie
查看响应应该是这个问题

在这里插入图片描述

SameSite是一个cookie属性,用于控制浏览器是否在跨站点请求中发送cookie。它有三个可能的值:

1. Strict(严格模式)

在严格模式下,浏览器将不会在跨站点请求中发送cookie。这意味着这些cookie将仅用于同站点请求。这是默认设置。

2. Lax(宽松模式)

在宽松模式下,浏览器将仅在跨站点POST请求(例如表单提交)中发送cookie。任何跨站点请求(包括GET请求)都不会发送cookie。这可以提供一定程度的保护,同时允许一些常见的用例。

3. None(无限制模式)

在无限制模式下,浏览器将在所有跨站点请求中发送cookie。这是因为cookie的SameSite属性默认为Strict,需要明确设置为None来允许跨站点请求发送cookie。

SameSite属性的目的是防止跨站点请求伪造(CSRF)攻击。通过限制哪些请求可以发送cookie,可以减少攻击者对用户身份验证的滥用。

需要注意的是,SameSite属性对于旧版本的浏览器可能不起作用,因此应该采取其他措施来防止CSRF攻击。此外,SameSite属性也不会提供完全的保护,只能作为一种额外的安全层。

设置SameSite

    // 设置Cookie的SameSite属性为None,并启用Secure标志
    Cookie cookie = new Cookie("JSESSIONID", request.getSession().getId());
    cookie.setPath("/");
    cookie.setHttpOnly(true); // 保持HttpOnly属性以增强安全性
    cookie.setSecure(true); // 必须在HTTPS环境下设置为true,因为SameSite=None要求安全上下文
    cookie.setSameSite(Cookie.SameSite.NONE.getValue()); // 设置SameSite为None,注意这需要Servlet 5.0+支持

但是无法使用Cookie中的方法 setSameSite
我正在使用的Java Servlet API版本不支持直接设置SameSite属性。Cookie.setSameSite()方法是在Servlet 5.0规范中引入的。如果你的项目依赖于早期版本的Servlet API,无法直接调用这个方法。

手动设置响应头来实现SameSite=None,同时确保设置Secure标志,因为大多数浏览器在SameSite=None时要求使用HTTPS。

在后端拦截器中加入下面代码显式配置响应头

String sessionID = request.getSession().getId();
response.setHeader("Set-Cookie", String.format("JSESSIONID=%s; Path=/; Secure; HttpOnly; SameSite=None", sessionID));

前端请求头成功携带cookie

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

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

相关文章

如何使用pwclient从社区邮件列表获取相关补丁

最近在调试Qualcomm的QCA2066 WiFi 6E平台,主控处理器信息如下所示: 6nm AMD APU CPU:Zen 2 4c/8t、2.4-3.5GHz(最高可达 448GFlops FP32) GPU:8 RDNA 2 CUs、1.6GHz(1.6 TFlops FP32&#xff0…

Tomcat配置详解

文章目录 一、配置文件介绍配置文件日志文件 二、组件组件分层和分类核心组件Tomcat处理请求过程URL对应关系 三、部署java程序手动部署搭建博客状态页 四、常见配置详解tomcat端口号安全配置管理虚拟主机配置Context配置 四、Tomcat Nginx动静分离 一、配置文件介绍 配置好环…

代码讲解——ssm+jsp+maven项目目录结构说明

1 applicationContext.xml 应用上下文配置 2 db.properties 数据库配置 3 log4j.properties日志配置 4 mybatis-config.xml mybatis配置 5 springmvc.xml springmvc配置

【ai】tx2-nx:安装深度学习环境及4.6对应pytorch

参考:https://www.waveshare.net/wiki/Jetson_TX2_NX#AI.E5.85.A5.E9.97.A8 英伟达2021年发布的的tritionserver 2.17 版本中,backend 有tensorflow1 和 onnxruntime ,他们都是做什么用的,作为backend 对于 triton 推理server意义是什么,是否应该有pytorch? Triton Infer…

新版二开微信发卡小程序源码卡密系统/支持流量主

新版二开微信发卡小程序源码卡密系统支持流量主。裂变扩展多种领取模式二次开发的发卡小程序源码,其后台采用PHP编写,支持用户通过付费购卡或者观看视频广告领取卡密。 该小程序还支持流量主,因为功能需要,就进行了二开&#xff…

LeetCode 热题100 --哈希

哈希 哈希,有限空间映射一个无限的空间。在空间内,有序化进行快速查询。 用空间换时间。 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组…

如何使用ChatGPT辅助设计工作

文章目录 设计师如何使用ChatGPT提升工作效率?25个案例告诉你!什么是 prompt?咨询信息型 prompt vs 执行任务 prompt编写出色 prompt 的基本思路撰写 prompt 的案例和技巧1、将 ChatGPT 视作专业人士2、使用 ChatGPT 创建表单3、使用 ChatGPT…

论文学习 Learning Robust Representations via Multi-View Information Bottleneck

Code available at https://github.com/mfederici/Multi-View-Information-Bottleneck 摘要:信息瓶颈原理为表示学习提供了一种信息论方法,通过训练编码器保留与预测标签相关的所有信息,同时最小化表示中其他多余信息的数量。然而&#xff0…

驶向未来,智慧加油新体验——我们的加油App开发之旅

一、引言 在数字化与智能化交织的时代,每一次出行都呼唤着更加高效、便捷的服务。为了满足广大车主对加油服务的更高需求,我们倾力打造了一款创新的加油App,旨在为您的驾驶生活带来前所未有的智慧新体验。 二、洞察需求,创新服务…

torch.optim 之 Algorithms (Implementation: for-loop, foreach, fused)

torch.optim的官方文档 官方文档中文版 一、Implementation torch.optim的官方文档在介绍一些optimizer Algorithms时提及它们的implementation共有如下三个类别:for-loop, foreach (multi-tensor), and fused。 Chat-GPT对这三个implementation的解释是&#xf…

光伏设计需要设计哪些方面?

光伏设计是一项复杂而关键的工作,它涉及到多个方面的综合考虑,以确保光伏系统的效率、安全性和可持续性。下面将详细探讨光伏设计需要设计的几个方面。 一、系统规模与布局 光伏设计的首要任务是确定系统的规模和布局。这包括评估安装地点的光照资源、可…

工业智能网关如何与设备连接?天拓四方

随着工业4.0时代的来临,智能化、自动化已成为工业生产的标配。在这样的背景下,工业智能网关应运而生,成为连接工业设备、实现数据交互与管理的关键节点。本文将阐述工业智能网关如何与设备连接,旨在为读者提供一套清晰、实用的解决…

实现Hexo新建博文时自带随机默认封面

文章目录 1. Hexo模版2. 准备封面和缩略图3. 新建博文脚本windowsLinux 4. 效果展示 前提是选择的主题在Front-matter中支持cover和thumbnail,主题之间对于这两个属性的定义可能并不用,如果不适用,只需要根据逻辑修改脚本即可。 1. Hexo模版…

python爬虫之selenium自动化操作

python爬虫之selenium自动化操作 需求:操作淘宝去掉弹窗广告搜索物品后进入百度回退又前进 selenium模块的基本使用 问题:selenium模块和爬虫之间具有怎样的关联? 1、便捷的获取网站中动态加载的数据 2、便捷实现模拟登录 什么是selenium模块&#x…

视频去水印,视频去水印软件

有时候我们在网上下载了一些喜欢的视频,但是却发现上面有水印,影响观看体验。今天我就来教大家一个轻松去除视频水印的简单的方法。 一、使用专业视频编辑软件去水印 市面上有很多专业的视频编辑软件,如Adobe Premiere Pro,它们都…

通过python代码将html文件另存为xlsx文件

通过python实现办公流程自动化,经常遇到从网页上下载的excel文件为html格式的表格(或者后缀为xls/xlsx,实际依旧为html格式),无法通过python处理文件数据,比如合并excel文件,此时就需要将文件另…

Element-ui中Table表格无法显示

Element-ui中Table表格无法显示 在使用过程中发现样式正常显示但是table就是不显示,研究了一段时间后,发现问题是项目结构的问题 当你创建vue和安装el的时候,一定要注意进入到正确的项目文件夹,如果在外面也出现一个package.jso…

神经网络模型---LeNet-5

一、LeNet-5 1.定义LeNet-5模型 model models.Sequential([1.1添加一个二维卷积层,有6个过滤器,每个过滤器的尺寸是5x5。输入图像尺寸是28x28像素,具有1个颜色通道,激活函数是relu layers.Conv2D(6, (5, 5), activationrelu, input_shape…

甘肃传统面点苦豆饼,你是否有吃过?

苦豆饼,作为甘肃平凉的特色美食之一,以其独特的制作工艺和别具一格的口味,成为了众多美食爱好者的心头好。食家巷苦豆饼的制作过程十分讲究。选用优质的面粉和苦豆粉,经过精心调制和揉面,使面团达到最佳的韧性和口感。…

HTML(15)——盒子模型

盒子模型组成 内容区域 -width&height内边距-padding (出现在内容与盒子边缘之间)边框线-border外边距-margin (出现在盒子外面) div { width: 200px; height: 200px; background-color: rgb(85, 226, 193); padding: 20px; …