首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即使为MERN堆栈web应用程序设置了sameSite:'none‘和secure: true,Cookie也不会保存在chrome中

当您在MERN堆栈Web应用程序中设置了SameSite: 'none'Secure: true,但Cookie仍然没有保存在Chrome浏览器中时,可能是由于以下几个原因:

基础概念

  • SameSite属性:这是一个用于控制Cookie在跨站请求中的发送行为的属性。它可以设置为StrictLaxNone
  • Secure属性:当设置为true时,Cookie仅通过HTTPS协议传输。

可能的原因及解决方法

  1. Chrome版本兼容性
    • Chrome浏览器对SameSite=None的支持是从版本80开始的,但默认情况下,它要求必须同时设置Secure属性。
    • 解决方法:确保您的Chrome浏览器版本是最新的。
  • 服务器端设置不正确
    • 确保服务器发送的Cookie头部信息正确无误。
    • 示例代码(Node.js/Express):
    • 示例代码(Node.js/Express):
  • 浏览器设置问题
    • 用户可能在浏览器设置中禁用了第三方Cookie或者对Cookie有特殊的隐私设置。
    • 解决方法:检查浏览器的隐私设置,确保允许网站保存Cookie。
  • HTTPS配置问题
    • 如果网站没有正确配置HTTPS,即使设置了Secure: true,Cookie也不会被保存。
    • 解决方法:确保您的网站已经通过HTTPS提供服务,并且证书有效。
  • 跨域请求问题
    • 如果Cookie是在跨域请求中设置的,需要确保服务器端允许跨域请求,并且客户端正确处理了CORS(跨源资源共享)。
    • 示例代码(Node.js/Express):
    • 示例代码(Node.js/Express):

应用场景

  • 这种设置通常用于需要跨站点会话管理的Web应用程序,例如单点登录(SSO)系统或跨域用户认证。

检查步骤

  1. 验证Cookie设置
    • 使用浏览器的开发者工具查看网络请求,确认Cookie头部信息是否正确。
  • 更新浏览器和服务器配置
    • 确保浏览器版本是最新的,并且服务器配置了正确的HTTPS和CORS策略。
  • 测试其他浏览器
    • 在其他浏览器中测试以排除是否为Chrome特有的问题。

通过以上步骤,您应该能够诊断并解决Cookie在Chrome中不被保存的问题。如果问题仍然存在,建议进一步检查应用程序的其他部分或寻求社区帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用IdentityServer出现过SameSite Cookie这个问题吗?

请注意:该设置 SameSite=None 仅在 cookie 也被标记为 Secure 并需要 HTTPS 连接时才有效。...还有其他情况可能会给您带来问题:首先,如果您在 Web 应用程序或网站中嵌入源自另一个域的元素,例如视频的自动播放设置,并且这些需要 cookie 才能正常运行,这些也会需要设置 SameSite 策略...要解决这个问题,我们首先需要确保需要通过跨站点请求传输的 cookie(例如我们的会话 cookie)设置为 SameSite=None 和 Secure。...这会在 ASP.NET Core Web 应用程序中添加和配置 cookie 策略。此策略将检查是否设置了 cookie 为 SameSite=None 。...为确保所有浏览器都满意,您将所有受影响的 cookie 设置为 Secure 和 SameSite=None,然后添加一个 cookie 策略(如上所示的代码),该策略可以覆盖这些设置并再次为无法对 None

1.5K30

两个你必须要重视的 Chrome 80 策略更新!!!

在 Chrome 80 中,如果你的页面开启了 https,同时你在页面中请求了 http 的音频和视频资源,这些资源将将自动升级为 https ,并且默认情况下,如果它们无法通过https 加载,Chrome...如果该政策设置为true或未设置,则音频和视频混合内容将自动升级为HTTPS(即,URL将被重写为HTTPS,如果资源不能通过HTTPS获得,则不会进行回退),并且将显示“不安全”警告在网址列中显示图片混合内容...如果该策略设置为false,则将禁用音频和视频的自动升级,并且不会显示图像警告。该策略不影响音频,视频和图像以外的其他类型的混合内容。 但是以上策略是一个临时策略,将在 Chrome 84 中删除。...2.强推 SameSite Cookie SameSite 是 Chrome 51 版本为浏览器的 Cookie 新增的了一个属性, SameSite 阻止浏览器将此 Cookie 与跨站点请求一起发送...具有 SameSite=None 的 Cookie 也必须标记为安全并通过 HTTPS 传送。 如果你的 Cookie 未能正确配置。

4.2K40
  • 【Web技术】582- 聊聊 Cookie “火热”的 SameSite 属性

    存放在本地的好处就在于即使你关闭了浏览器,Cookie 依然可以生效。 Cookie 的设置 ---- 那 Cookie 是怎么设置的呢?...需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期 Cookie 也会被保留下来,就好像浏览器从来没有关闭一样。...比如设置 Path=/docs,/docs/Web/ 下的资源会带 Cookie 首部,/test 则不会携带 Cookie 首部。...天猫商家后台请求了跨域的接口,因为没有 Cookie,接口不会返回数据 …… 如果不解决,影响的系统其实还是很多的…… 6. 解决 解决方案就是设置 SameSite 为 none。...不过也会有两点要注意的地方: HTTP 接口不支持 SameSite=none 如果你想加 SameSite=none 属性,那么该 Cookie 就必须同时加上 Secure 属性,表示只有在 HTTPS

    1.8K20

    实用,完整的HTTP cookie指南

    Cookie 的 Secure 属性 Secure 属性是说如果一个 cookie 被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用 http 协议是不发送的。...设置了Strict或Lax以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。 Chrome 计划将Lax变为默认设置。...这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。 下面的设置无效。...Set-Cookie: widget_session=abc123; SameSite=None; Secure Cookies 和 认证 身份验证是 web 开发中最具挑战性的任务之一。...为了解决此问题,大多数开发人员都将JWT令牌保存在cookie中,以为HttpOnly和Secure可以保护cookie,至少可以免受XSS攻击。

    6K40

    临近年关,修复ASP.NET Core因浏览器内核版本引发的单点登录故障

    的同源策略, = none 指示客户端禁用Cookie的同源限制 HttpOnly 指示创建的Cookie是否能通过Javascript访问(该cookie依然存于浏览器上),这里true,表示不能通过...修复策略 我们的目的是为兼容这些旧核心浏览器,但是本人不打算打补丁(浏览器嗅探,根据User-Agent屏蔽SameSite=none), 结合站点的同源限制的现状,本站点没有必要显式设置SameSite...Secure = false, }); SameSite历史和版本变更 ASP.NET Core是在2.0版本开始支持SameSite(IETF 2016...IETF 2019标准发布了修复补丁,2019 SameSite草案规定: 与2016年草案不向后兼容 默认将Cookie SameSite= Lax 显式设置SameSite=None时,必须将该Cookie...标记为Secure, None是一个新值 ASP.NET Core 3.1在SameSite枚举值新增Unspecified,表示不写入SameSite属性值,继承浏览器默认的Cookie策略 预定于2020

    1.8K10

    HTTP cookie 完整指南

    Cookie 的 Secure 属性 Secure 属性是说如果一个 cookie 被设置了Secure=true,那么这个cookie只能用https协议发送给服务器,用 http 协议是不发送的。...设置了Strict或Lax以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。 Chrome 计划将Lax变为默认设置。...这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。 下面的设置无效。...Set-Cookie: widget_session=abc123; SameSite=None; Secure Cookies 和 认证 身份验证是 web 开发中最具挑战性的任务之一。...为了解决此问题,大多数开发人员都将JWT令牌保存在cookie中,以为HttpOnly和Secure可以保护cookie,至少可以免受XSS攻击。

    4.3K20

    【网络知识补习】❄️| 由浅入深了解HTTP(四) HTTP之cookies

    也可以将 cookie 设置为在特定日期过期,或限制为特定的域和路径。...需要注意的是,有些浏览器提供了会话恢复功能,这种情况下即使关闭了浏览器,会话期Cookie 也会被保留下来,就好像浏览器从来没有关闭一样,这会导致 Cookie 的生命周期无限期延长。...但即便设置了 Secure 标记,敏感信息也不应该通过 Cookie 传输,因为 Cookie 有其固有的不安全性,Secure 标记也无法提供确实的安全保障, 例如,可以访问客户端硬盘的人可以读取它。...从 Chrome 52 和 Firefox 52 开始,不安全的站点(http:)无法使用Cookie的 Secure 标记。...在应用程序服务器上,Web 应用程序必须检查完整的 cookie 名称,包括前缀 —— 用户代理程序在从请求的 Cookie 标头中发送前缀之前,不会从 cookie 中剥离前缀。

    1.9K20

    【Django跨域】一篇文章彻底解决Django跨域问题!

    # 改为True即为可跨域设置Cookie CORS_ALLOW_CREDENTIALS = True ​ # 这里有一个需要注意的点 # chrome升级到80版本之后,cookie的SameSite...属性默认值由None变为Lax # 也就是说允许同站点跨域 不同站点需要修改配置为 None(需要将Secure设置为True) # 需要前端与后端部署在统一服务器下才可进行跨域cookie设置 ​ #...总结:需要设置 samesite = none、secure = True(代表安全环境 需要 localhost 或 HTTPS)才可跨站点设置cookie Cookie属性 key:键 value...这是浏览器中的默认值。 Strict Cookies 只会在第一方上下文中发送,不会与第三方网站发起的请求一起发送。 None Cookie 将在所有上下文中发送,即允许跨站发送。...= True ​ # 设置set_cookie的samesite属性 SESSION_COOKIE_SAMESITE = 'None' SESSION_COOKIE_SAMESITE = 'Lax'

    6.1K32

    【跨域】一篇文章彻底解决跨域设置cookie问题!

    是因为谷歌浏览器新版本Chrome 80将Cookie的SameSite属性默认值由None变为Lax。 接下来带大家解决该问题。...值为Lax,允许在跨站时使用Get请求携带Cookie,下面有一个表格介绍Lax的Cookie使用情况。 值为None,允许跨站跨域使用Cookie,前提是将Secure属性设置为true。...并且谷歌浏览器新版本Chrome 80将Cookie的SameSite属性默认值由None变为Lax。...这下就很清楚明了了,有两种解决方案: 将Cookie的SameSite值设为None,Secure值改为true,并且升级为https,我们就可以跨域使用Cookie。...# 方案一 # 将session属性设置为 secure SESSION_COOKIE_SECURE = True # 设置cookie的samesite属性为None SESSION_COOKIE_SAMESITE

    7.4K10

    XSS跨站脚本攻击基础

    包括会话型cookie和持久型cookie,会话型cookie储存在临时储存中,关闭浏览器的时候就会消失,而持久型cookie储存在硬盘中。...Expires属性缺省时,为会话型Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久型Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效...Secure:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。...由于不同的浏览器对Cookie的解析不同,所以Cookie不能跨浏览器存储,也就是说在chrome中登录的网页,在firefox中不会存储登录的信息。...如果我们能够在web程序中,对用户提交的URL中的参数,和提交的所有内容,进行充分的过滤,将所有的不合法的参数和输入内容过滤掉,那么就不会导致在用户的浏览器中执行攻击者自己定制的脚本。

    1.1K20

    Cook Cookie, 我把 SameSite 给你炖烂了

    直到2020年7月14日Chrome 84稳定版开始,重新恢复SameSite cookie策略,并且会逐步部署到Chrome 80以及以上的版本中。...SameSite=Lax" 变成默认设置,取代现在的"SameSite=None";2.如果硬要设置成"SameSite=None",则需要同时增加"Secure"标识,即这个cookie只能在Https...在最新的RFC6265 替代草案draft-ietf-httpbis-rfc6265bis-05[9], 提及了这三个属性值,并做了介绍,但貌似还是落后现在浏览器的实现,因为草案中SameSite=None...为了在新版本浏览器下,能继续让单点登录有效,所以淘宝的开发也就做点改变来适应, cookie 都打上了samesite=None与secure标识, 利用改进第二条规则。 ?...需要设置credentials属性为include(ajax有相似设置), 但这只是开始,因为设置了这个属性携带了cookie后,这个请求就变成了非简单请求,服务端需要针对请求的站点设置Access-control-Allow-Credentials

    2.4K10

    cookie跨域传输cookie问题:nginx跨域代理之proxy_cookie_domain

    Path限定哪些路径可以访问该数据,如果值为“/”,则Web服务器上所有的WWW资源均可读取该Cookie,默认为存储是对应路径Secure 限定通信只有是加密协议时,才可读取本地数据。...设置http头解决跨域问题CORS为我们提供了跨域资源共享的解决方案,通过Access-Control-Allow-Origin Access-Control-Allow-Credentials Access-Control-Allow-Headers...比如,当前网页有一个 GitHub 链接,用户点击跳转就不会带有 GitHub 的 Cookie,跳转过去总是未登陆状态。None,Cookie 只能通过 HTTPS 协议发送。...必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。...Set-Cookie: widget_session=abc123; SameSite=None; SecureLax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get

    6.8K20

    一文看懂Cookie奥秘

    -969171-****** “除了服务端响应时使用Set-Cookie标头种植cookie,浏览器javascript也可以种植cookie cookie的种植面积 Domain和Path属性定义了...- /docs - /docs/web/ - /docs/web/http cookie的有效时长 一般情况下浏览器关闭,cookie失效; 可通过设置特定的Expires或者Max-Age为cookie...发送cookie的物理安全 Secure指定了发送cookie的物理安全:要求以HTTPS形式回发cookie “Chrome52+、Firefox52+已经支持Secure指令,再使用http请求已经不会携带...即便是Secure指令, 敏感信息也不要放在cookie中, 因为他们天生就不安全,https并不能提供足够有效的安全防护。 谁能访问cookie?...,使cookie的SameSite默认= Lax 如果需要跨域发送cookie,请使用None枚举值选择无SameSite限制, None指令需要搭配Secure指令 Tip:None枚举值是标准新增枚举值

    1.6K51

    跨站(cross-site)、跨域(cross-origin)、SameSite与XMLHttpRequest.withCredentials

    Secure = true, SameSite = SameSiteMode.None }); Response.Cookies.Append...对于HTTPS协议的API返回的cookie,如果设置了属性:secure; samesite=none,则浏览器会存储cookie。XHR请求也会带上目标域的cookie: ?...和Strict的cookie; XHR请求会带上目标域的cookie; cross-site 对于HTTPS协议的API返回的cookie,如果设置了属性:secure; samesite=none...若前端XHR请求中设置withCredentials为true,但后台API未设置Access-Control-Allow-Credentials,则会报The value of the 'Access-Control-Allow-Credentials...若前端XHR请求中设置withCredentials为true,但后台API配置Access-Control-Allow-Origin的值为*,则会报The value of the 'Access-Control-Allow-Origin

    3.4K10

    浏览器嗅探解决部分浏览器丢失Cookie问

    原因在于,非Chrome80+浏览器不识别Cookie上的SameSite=none属性值,导致认证Cookie在后续请求中被抛弃。 ?...截至2020/3/30号,非Chrome浏览器测试包含两种结果: case1:可设置cookie的samesite=none, 浏览器可读取该cookie case2:对cookie设置samesite...10.0.6.304 case1 魅族手机浏览器 8.5.1 case2 嗯,我之前报的360急速浏览器在新版已经更新了Chrome内核,作为主流的搜狗和猎豹浏览器还是使用旧版本Chrome内核...如果Web应用程序打算支持旧内核浏览器,则需要实现浏览器嗅探。ASP.NET Core不会帮你实现浏览器嗅探,因为User-Agents值易变且经常更改。...ASP.NET Core3.1 对与SameSiteMode新增了一个 Unspecified枚举值,表示服务端不会对Cookie设置SameSite属性值, 后面的携带Cookie的事情交给浏览器默认配置

    1.3K20

    iframe、SameSite与CEF

    iframe、SameSite与CEF 背景 本人使用CEF(或是Chrome)来加载开发的前端页面,其中使用iframe嵌入了第三方页面,在第三方页面中需要发送cookie到后端,然而加载会报错...SameSite 属性可以让 Cookie 在跨站请求时不会被发送,从而可以阻止跨站请求伪造攻击(CSRF)。 SameSite 可以有下面三种值: Strict(严格的)。...发送 Cookie 不发送 Image 发送 Cookie 不发送 None(无)。无论是否跨站都会发送 Cookie。...解决方案 Chrome(或是基于Chromium的Edge) 在基于Chrome中,可以进入如下的页面进行配置: 地址栏输入:chrome://flags/(Edge中会自动转为edge://) 找到...SameSite by default cookies和Cookies without SameSite must be secure 将上面两项设置为 Disable CEF 上面的方法很通用,不过

    53430
    领券