首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置cookie跨域

设置cookie跨域
EN

Stack Overflow用户
提问于 2017-09-17 16:53:18
回答 1查看 568关注 0票数 0

有两个域:domain1.comdomain2.comdomain1.com的服务器

代码语言:javascript
复制
app.get('/',(req,res,next)=>{
    res.redirect('domain2.com/');
})

domain2.com的服务器

代码语言:javascript
复制
app.get('/',(req,res,next)=>{
    res.cookie("name",'luoxia');
    res.end();
})

我发现cookie设置为domain1.com,为什么?

我想将cookie设置为domain2.com。该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2017-09-17 17:17:54

无法为其他域设置cookies。允许这样做会带来一个巨大的安全漏洞。没有跨域cookie这回事。你可以在foo.example.com和bar.example.com之间共享cookie,但不能在example.com和example2.com之间共享cookie,这是出于安全原因。

如果要将数据传递到另一个域,可以将其编码到URL中。或者你可以像这样的黑客。

将所有cookie集中在单个域中,

代码语言:javascript
复制
   1. let's say cookiemaker.com When the user makes a request to example.com you redirect him to cookiemaker.com
   2.cookiemaker.com redirects him back to example.com with the information you need

当然,这并不是完全安全的,您必须在应用程序之间创建某种内部协议才能做到这一点。

最后,如果你对每个请求都这样做,用户会非常恼火,但如果这只是第一个请求,那就不是这样了。

请参阅RFC6265

用户代理将拒绝cookie,除非域属性指定了cookie的范围,该范围将包括源服务器。例如,用户代理将接受来自foo.example.com的域属性为"example.com“或"foo.example.com”的cookie,但用户代理不接受域属性为"bar.example.com“或"baz.foo.example.com”的cookie。

注意:出于安全原因,许多用户代理被配置为拒绝与“公共后缀”相对应的域属性。例如,一些用户代理将拒绝"com“或"co.uk”的域属性。(有关更多信息,请参阅第5.3节。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46262286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档