惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Secure Thoughts
S
Securelist
T
The Exploit Database - CXSecurity.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Schneier on Security
Schneier on Security
P
Proofpoint News Feed
Latest news
Latest news
C
CXSECURITY Database RSS Feed - CXSecurity.com
Google DeepMind News
Google DeepMind News
Microsoft Security Blog
Microsoft Security Blog
美团技术团队
T
Threat Research - Cisco Blogs
Know Your Adversary
Know Your Adversary
AWS News Blog
AWS News Blog
V2EX - 技术
V2EX - 技术
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
腾讯CDC
月光博客
月光博客
G
Google Developers Blog
F
Fortinet All Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
Hacker News - Newest:
Hacker News - Newest: "LLM"
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
T
Threatpost
N
News and Events Feed by Topic
Y
Y Combinator Blog
J
Java Code Geeks
N
News and Events Feed by Topic
T
Troy Hunt's Blog
Project Zero
Project Zero
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
C
CERT Recently Published Vulnerability Notes
小众软件
小众软件
有赞技术团队
有赞技术团队
罗磊的独立博客
Martin Fowler
Martin Fowler
L
LINUX DO - 最新话题
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Proofpoint News Feed

博客园 - 俩醒叁醉

ASP.NET MVC 4 WebAPI. Support Areas in HttpControllerSelector SQL2000安装问题(转) sql server 2008安装需要一直重启。但重启后又没有达到效果。 为数据库中所有的用户数据表生成分页存储过程 SQL 2005 字段备注获取 __doPostBack方法解析 如何在三个月掌握三年的经验(转载&&笔记) jQuery Ajax的使用 JQuery资源网站 Cookie跨域、虚拟目录 CnBlogsDotText使用实例 轻松搭建博客平台-开源ASP.NET 博客Subtext 的安装 表达式目录树(源MSDN) Web 2.0 编程思想:16条法则 Control Adapter 以下代码提供查询数据库中是否存在某个值 URL Routing MVC Controllers和Forms验证 CSharp——Lambda 表达式
深入分析跨域cookie的问题
俩醒叁醉 · 2009-03-15 · via 博客园 - 俩醒叁醉

原:http://blog.csdn.net/pwlazy/archive/2007/04/23/1576464.aspx

背景: a网站(j2ee,域名a.yourdomain),b网站(rails,域名b.yourdomain),为了使a网站和b网站登陆同步,我们决定采用cookie进行统一管理,在我们的应用中,一般是a网站产生cookie,b网站会修改和删除cookie

在删除cookie时 我们遇到一个很怪的问题就是b网站无法删除a网站建立的cookie

我们通过如下方法:

1)cookies[:ut]={:value=>"",
           :expires=>-1.days.from_now
    }

(此时浏览器确实在执行此动作前发送了cookie,值为x,返回的结果确实是此cookie变成了空,但再次发送请求的时候又发送x)

或者

2)cookies[:ut]=nil

(此时浏览器确实在执行此动作前发送了cookie,值为x,返回的结果确实是此cookie变成了空,但再次发送请求的时候又发送了两个cookie,一个为x,一个为空,服务器这边接受到的是x)

或者

3)cookies.delete :ut

(此时浏览器确实在执行此动作前发送了cookie,值为x,返回的结果确实是此cookie变成了空,但再次发送请求的时候又发送x)和1情况相同

都不行

后来发现

  def clear_ut_cookie
    cookies[:ut]={:value=>"",
      :domain=>"yourdomain",
      :expires=>-1.days.from_now
    }

这样写是可以的,也就是说必须加上:domain=>"yourdomain"

同样的道理,在修改时也是这样,如果不加上:domain=>"yourdomain",浏览器发请求送出cookie a, 服务器请求完毕,浏览器会接受到cookie b,然后浏览器再次发请求,这时会发送cookie a和cookie b 此后你会发现cookie b一直在变,cookie  a  保持不变

总结:做cookie操作最好指定domain,否则跨域的修改和修改不会生效。从上面的各种实践可以看出:如果不指定domain,那么服务器返回的cookie并不会覆盖浏览器中已有的cookie,虽然是同名cookie,但域不同,接着浏览器发送请求的时候,会将两个cookie同时发送,但服务器只会处理其中一个,那就是指定域的。

这个最根本性的原理也解释了为什么会出现上面三种问题

1)没有指定域,但有:expires=>-1.days.from_now,所以第一次请求的时候是cookie a,服务器返回的是cookie b,但cookie b 并没有覆盖cookie a,但因为有:expires,会立马过期,所以发送的时候只会发送cookie a

2)没有指定域,没有expire,所以第一次请求的是cookie a 服务器返回的是cookie b,但cookie b 并没有覆盖cookie a,且cookie b 无:expires, 所以发送的时候会发送cookie a和cookie b。。。。。。

3)和1)同