浏览器在传递cookie时与domain有关的策略

Nginx反向代理解决Cookie跨域问题:原理、配置与生产实践 在前后端分离架构中,Cookie作为维持用户登录状态的关键机制,常因浏览器的同源策略(Same-Origin Policy)在跨域请求时失效,导致登录态丢失。其原理在于浏览器默认只允许同源(协议、域名、端口一致)的请求携带Cookie。为解决此问题,除了CORS和JWT等技术方案外,Nginx反向代理提供了一种对业务代码零侵入的解决方案。该技术通过在网关层将不同域的服务聚合到同一域名下,使浏览器认为请求源自同源,从而自然携带Cookie。其核心价值在于将跨域复杂性下沉至基础设施层,便于集中管理、负载均衡和安 阅读详情

最近在排查一个ie6特定版本(2900.2180 xp sp2 gdr)中才会出现的cookie传递问题,因此查阅了rfc2109.http://tools.ietf.org/html/rfc2109

 

chrome/ff下向a.b.c.com发送数据,不会提交domain为b.c.com的cookie,但会提交.b.c.com的cookie,因为能提交的cookie必须满足domain-matches条件,如rfc2109所言,x.y.com domain-matches .y.com but not y.com。所以这应该算是ie6特定版本的一个bug自己的实现,它提交了b.c.com的cookie。另一方面,rfc2109规定,An explicitly specified domain must always start with a dot.Domain Defaults to the request-host.  (Note that there is no dot at the beginning of request-host.)

 

为什么默认值选择给出一个不规范的domain而不是主动加个点在最前面呢?

 

结论:

浏览器在传递cookie时,会传递本域名及其父域(必须以.开头)的所有cookie。即向a.b.c.com发送数据,会带上的cookie有:

a.b.c.com

.b.c.com

.c.com


如果服务器要指定cookie的domain,应该以.开头。


=============追加内容===============

如此文所言:http://stackoverflow.com/questions/1062963/how-do-browser-cookie-domains-work

RFC 2109 已经被RFC 2965 取代


Although there is the RFC 2965 (Set-Cookie2, had already obsoleted RFC 2109) that should define the cookie nowadays, most browsers don’t fully support that but just comply to the original specification by Netscape.

There is a distinction between the Domain attribute value and the effective domain: the former is taken from the Set-Cookie header field and the latter is the interpretation of that attribute value. According to the RFC 2965, the following should apply:

  • If the Set-Cookie header field does not have a Domain attribute, the effective domain is the domain of the request.
  • If there is a Domain attribute present, its value will be used as effective domain (if the value does not start with a . it will be added by the client).

Having the effective domain it must also domain-match the current requested domain for being set; otherwise the cookie will be revised. The same rule applies for choosing the cookies to be sent in a request.

 


炼丹-Pyecharts: JupyterLab无法render_notebook 炼丹-Pyecharts: JupyterLab无法render_notebook问题描述Jupyter-Lab 环境下render_notebook显示空白 问题描述Jupyter-Lab 环境下render_notebook显示空白 首先需要使用pyecharts自带的config来申明一下使用pyecharts的运行环境 from pyecharts.globals import Curre... 阅读详情

相关推荐

新手必看!Cisco Packet Tracer 8.2从安装到完成第一个局域网实验(附常见问题解决)

本文为网络新手提供了Cisco Packet Tracer 8.2的完整入门指南。从官方下载安装、界面熟悉,到核心的拖拽设备、连线、配置IP地址三步操作,手把手教你完成第一个局域网组网实验。文章重点讲解了如何通过Ping命令验证连通性,并附带了连线错误、IP配置不当等常见问题的解决思路,帮助初学者快速上手这款强大的思科模拟器。

android的专栏 869

深入理解浏览器的 Cookie:全面解析与实践指南

Cookie 是指服务器通过 HTTP 响应头发送到用户浏览器的一段小型文本数据,该数据会被浏览器保存在本地。其核心作用在于记录用户的状态信息,从而使服务器能够识别用户的身份、维护用户会话、记录用户行为以及个性化定制页面等。在没有 Cookie 之前,HTTP 协议被设计为无状态协议,也就是说每一次 HTTP 请求都是独立的、互不关联的请求。服务器无法辨识出连续的请求是否来自同一客户端,也就无法实现登录状态、购物车保存、跨页面数据共享等功能。

weixin_52379434的博客 3276

vue3的面试题

vue3的面试题

jiang7701037的博客 6266

Cookie的设置域名domain与跨域的问题

今天研究一天发现cookie无法设置除当前域名或者其父域名之外的其他domain. 这个是浏览器出于对cookie的保护造成的,也就是cookie无法跨域设置。 对于子域名也有如下规则,当前域名只能设置当前域名以及他的父域名,不能设置子域名 如在www.wo.cao.baidu.com 域名下只能设置 cao.baidu.com,baidu.com 不能设置 da.jia.wo.cao....

HelloWorld_Joe的博客 5721

实战指南:将MediaPipe封装为Windows DLL,实现C++/C#高效调用

在计算机视觉和多媒体处理领域,跨平台框架为开发者提供了强大的算法模型和计算能力。其核心原理在于通过预训练的机器学习模型和优化的计算图,实现对图像、视频流中特定目标(如人脸、手势、姿态)的实时检测与分析。这项技术的价值在于能够将复杂的AI能力模块化,降低应用开发门槛。在实际工程实践中,为了突破特定语言生态的限制并优化部署流程,开发者常需将核心功能封装成独立的库。例如,将Google的MediaPipe框架封装为Windows动态链接库(DLL),就是一个典型的工程实践。此举能有效解决语言壁垒和部署简化问题,使

weixin_28691741的博客 360

PCIe Electrical PHY(4)-PCIE SPEC第8章指标讲解

1.1 PCIE TX SPEC TX主要关心两类参数,一类是Voltage Parameters,一类是Jitter Parameters。 其中Voltage相关参数主要关心不同preset下差分电压幅度的准确性。以及共模电压的稳定性。 PCIE spec中对Jitter相关的参数测量定义如下: 分为两大类:DDJ(Data dependent Jitter)和UJ(Uncorrelated ...

maxwell2ic的博客 5951

跨域访问cookie同步

最近开发smain遇到的问题,因为是前后端分离,而后端服务有多个(目前有control/oms/wms),所以不同的模块访问的 服务是不同的。虽然shiro和redis做了集成,session已经可以共享,但是不同的服务因为域名不同,导致访问不同的服务 是cookie不一样。其实可以使用cas单点登陆解决,不过暂时不想做集成,选择一个比较取巧的方式实现。 如下:不同的模块访问的后端的服务是独...

hkx774757408的博客 1210

scratch绘制旋转彩球 2023年9月电子学会图形化编程scratch编程等级考试四级真题和答案解析

​ scratch绘制旋转彩球 2023年9月电子学会图形化编程Scratch等级考试四级真题 一、题目要求 1、准备工作 (1)删除小猫角色,从角色库选择Ball角色; (2)默认空白背景。 ​

青少年编程学习指导 1369

django之cookie值页面显示与浏览器保存的值不一致问题

个人遇到的关于django的cookie问题: counter = int(request.COOKIES['count']) + 1 # del request.COOKIES['count'] # 删除服务器COOKIES if counter > 3: counter = 'on' # print("%%%%%%%%%%%%%%%%%%%") # print(counter) # ...

llf_cloud的博客 879

Qt软件开发: 开发MQTT客户端软件,模拟硬件登录各大主流MQTT平台完成通信

此软件是使用QT编写MQTT客户端(根据mqtt官方文档3.1.1,自己实现过程代码,没有使用其他库,稳定,方便移植),模拟硬件登录各大主流的MQTT物联网服务器,完成主题订阅、发布等操作,实现数据通信交互。 已经测试OneNET、阿里云IOT、华为云IOT、百度IOT、电信IOT、原子云IOT等等常用的物联网云平台,都可以正常实现数据通信,只要云平台支持标准MQTT协议都可以使用此软件进行登录测试。 特别是大家没有硬件,想测试与MQTT物联网云服务器通信的,此软件是非常的方便。使用简单,比官方的软件操作

1万+

[工作流节点10] 获取多条数据并循环执行 —— 明道云批处理自动化实战

本文系统介绍了明道云工作流中"获取多条数据+循环执行"的批处理功能。该功能通过筛选数据集合并逐条处理,适用于批量通知、数据更新等场景。文章详细解析了功能配置方法,包括数据筛选、循环设置和异常处理,并提供了合同到期提醒等典型应用案例。同时强调了数据量控制、分批处理、错误处理等优化策略,帮助用户实现高效批量自动化。这一功能组合能将业务从单条处理升级为批量驱动,显著提升工作效率。

每日出拳老爷子的博客 455

突破浏览器限制:用js-cookie实现跨域请求的Cookie传递

你是否曾遇到过这样的困扰:前后端分离项目中,前端页面与API服务器不在同一个域名下,导致Cookie无法正常传递,用户登录状态丢失?别担心,本文将带你一步步解决这个问题,让你轻松掌握跨域Cookie传递的秘诀。读完本文,你将了解跨域Cookie传递的原理,学会使用js-cookie库结合服务器配置实现跨域认证,并掌握常见问题的解决方法。 ## 跨域Cookie传递的挑战与解决方案 在Web开发...

gitblog_00038的博客 1312

【调优】OpenClaw调优之模型(tokens)篇

OpenClaw用户常遇四大痛点:规则被无视、API账单暴涨、低效模型选择、记忆丢失。通过/context list命令可解析上下文组成,包括工作区配置、引导参数限制、系统提示词等关键信息。重点需关注Token消耗来源,如核心配置文件、技能工具说明等,避免静默截断。建议精简非必要内容,优化记忆机制,平衡功能与成本。该分析帮助用户减少无效操作,合理控制API支出。

海兰 991

jQuery Cookie 跨域配置终极指南:CORS 设置与 Cookie 传递完全教程

jQuery Cookie 是一个简单、轻量级的 jQuery 插件,专门用于读取、写入和删除浏览器 Cookie。在前端开发中,跨域资源共享(CORS)配置与 Cookie 传递是构建现代化 Web 应用的关键技术。本文将为您详细介绍 jQuery Cookie 的 CORS 配置方法和 Cookie 传递技巧。🎯 ## 🔧 jQuery Cookie 快速入门 jQuery Cooki

gitblog_00610的博客 1117

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Cookie 的 Domain 和 Path 属性有什么作用?

摘要:本文深入解析了Cookie的Domain与Path属性作用域机制。Domain属性控制Cookie的域名范围(如.example.com可被子域共享),Path属性限定URL路径前缀匹配规则(如/api匹配/api/v1)。两者共同决定Cookie的携带范围,遵循最小作用域原则可提升安全性。典型应用包括跨子域单点登录(通过Domain=.example.com实现)和模块隔离(通过Path=/shop等实现)。需注意避免将Domain设为顶级域名(如.com)等安全隐患,建议配合HttpOnly、Sa

quxuexi的博客 491

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

cookie与跨域的方法

cookie与跨域的方法 1.跨域方法 在浏览器中因为受到同源策略的影响,我们不能跨服务器进行数据的访问。因此接下来要说到的就是几种关于浏览器跨域的几种方式。 1.flash现目前不常用,因此不做讨论 2.服务器代理中转 3.jsonp 4.docum...

domino~~的博客 1160

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

关于不同域名共享cookie的问题

项目背景:两个项目之间需要共同的登录信息,域名不相同cookie不能直接传递。 在这里介绍一下cookie: 1.cookie是一个存储在客户端的字符串属性,可以用它对当前网页的cookie进行读,写,增.删等操作;javascript能够用document对象的cookie属性对cookie进行操作; 2.cookie的四个可选属性: 2.1 cookie的生存期属性:expires;默认情况下,cookie只在浏览器会话期存在.退出浏览器就丢失;可以用expires设置时间;退出浏览器后就不会丢失并存为

IUBKBK的博客 1万+

浏览器同源策略

前言 同源政策:起源被定义为URI方案,主机名和端口号的组合。此策略可防止一个页面上的恶意脚本通过该页面的文档对象模型访问另一个网页上的敏感数据。 由于服务器基于HTTP cookie信息来揭示敏感信息或采取改变状态的行为,因此这种机制对于广泛依赖于HTTP cookie 的现代Web应用程序来维护经过验证的用户会话具有特殊意义。(维基百科) (一)慨念 所谓的同源指的是“三个相同” ...

JUSTIN的博客 529

FastAPI Cookie配置完全指南:3种SameSite策略详解与实战

在构建现代Web应用时,你是否遇到过这样的困扰:前端应用部署在`https://app.example.com`,后端API在`https://api.example.com`,用户登录后Cookie无法正常传递?或者更糟糕的是,你的应用因为Cookie配置不当而面临安全风险?别担心,今天我们就来彻底解决FastAPI中的Cookie跨域配置问题,特别是SameSite策略这个关键安全特性。 F

gitblog_00233的博客 1111

ajax跨域请求及传递cookie

一、ajax跨域访问      先要搞清楚什么是ajax跨域。看如下例子即可明白: 网站A:a.test.com 通过ajax请求网站B:b.test.com上的接口,很明显网站A和网站B 是两个不同的域,而处于安全机制,JS只能访问与所在页面同一个域(相同协议、域名、端口)的内容,但是我们在项目开发时,经常遇到一个页面的js代码,通过ajax去访问另一个服务器并返回数据,这就是aja

付出总会有收获! 6107

Cookie全流程实战:从编码原理到安全实践,解决中文乱码与跨域传递

HTTP Cookie作为Web会话管理的核心技术,其本质是服务器通过Set-Cookie响应头发送、客户端存储并在后续请求中自动回传的小段数据。其工作原理涉及域名、路径、过期时间等关键属性的精细控制,而SameSite、HttpOnly、Secure等安全属性则构成了现代Web安全的重要防线。在工程实践中,Cookie的编码处理尤为关键,特别是在中文环境下,必须严格遵循URL编码规范(如encodeURIComponent和urllib.parse.quote),否则极易引发乱码问题。无论是前端开发、后端

weixin_26757925的博客 269

火狐浏览器设置cookie失败_Cookie知识总结

在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式、生存期、使用范围、安全性。在JavaScript中可以通过 document.cookie 来读取或设置这些信息。由于 cookie 多用在客户端和服务端之间进行通信,所以除了JavaScript以外,服务端的语言(如PHP)也可以存取 cooki...

weixin_28717969的博客 2042

Cookie操作避坑指南:为什么我的@CookieValue总是获取不到值?

本文深入解析Spring开发中@CookieValue获取不到值的常见问题,涵盖Cookie传输机制、注解配置陷阱及跨域处理方案。通过实战案例和诊断工具,帮助开发者有效解决Cookie可见性问题,提升会话管理可靠性。特别针对现代浏览器隐私策略和微服务架构提供了专业解决方案。

ttt77的博客 703

vue-cookie常见问题解答:解决80%开发者遇到的Cookie操作难题

vue-cookie是一款轻量级的Vue.js Cookie操作插件,让开发者能够轻松实现Cookie的设置、获取和删除等功能。在前端开发中,Cookie操作是常见需求,但新手往往会遇到各种问题。本文将解答vue-cookie使用过程中的常见问题,帮助开发者避开80%的操作陷阱。 ## 一、基础使用问题 ### 1.1 如何正确安装和引入vue-cookie? 安装vue-cookie有两种方

gitblog_00034的博客 354

『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

目录1、HTTP Cookie管理器介绍2、HTTP Cookie管理器界面详解3、JMeter中对Cookie的管理(1)Cookie的存储(2)Cookie的管理策略4、补充:Cookie的属性介绍 1、HTTP Cookie管理器介绍优惠券网 https://www.cps3.cn/ 在接口测试中,某些接口的调用,需要带入已有Cookie,比如有些接口需要登陆后才能访问。 JMeter接口请求中使用Cookie有如下两种方式: 直接在HTTP信息头管理器组件中添加Cookie头域信息,适用于已经知道.

weixin_48967543的博客 1251

浏览器:跨域及解决方法

出于浏览器的限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能不能使用。可以说Web是构建在同源策略基础之上的,。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)1、无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB2、无法接触非同源网页的 DOM。

snow的博客 2万+
上一篇: spring AOP 学习笔记
下一篇: 对服务化的一些疑问和思考
doraeimo
博客等级 码龄20年 11粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值