Javascript 设置cookie交叉原点
有两个域:Javascript 设置cookie交叉原点,javascript,node.js,express,cookies,Javascript,Node.js,Express,Cookies,有两个域:domain1.com和domain2.com。domain1.com的服务器: app.get('/',(req,res,next)=>{ res.redirect('domain2.com/'); }) app.get('/',(req,res,next)=>{ res.cookie("name",'luoxia'); res.end(); }) 以及域名2.com的服务器: app.get('/',(req,res,next)=>{
domain1.com
和domain2.com
。domain1.com的服务器
:
app.get('/',(req,res,next)=>{
res.redirect('domain2.com/');
})
app.get('/',(req,res,next)=>{
res.cookie("name",'luoxia');
res.end();
})
以及域名2.com的服务器:
app.get('/',(req,res,next)=>{
res.redirect('domain2.com/');
})
app.get('/',(req,res,next)=>{
res.cookie("name",'luoxia');
res.end();
})
我发现cookie设置为domain1.com
,为什么
我想将cookie设置为
domain2.com
。如何执行此操作?无法为其他域设置Cookie。允许这样做会带来巨大的安全漏洞。
没有跨域cookies这样的东西。您可以在foo.example.com和bar.example.com之间共享cookie,但不能在example.com和example2.com之间共享cookie,这是出于安全原因
如果要将数据传递到另一个域,可以将其编码到URL中。或者你也可以像这样的黑客
将所有cookie集中在一个域中
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
当然,它不是完全安全的,你必须在你的应用程序之间创建某种内部协议才能做到这一点
最后,如果你在每个请求上都做这样的事情,这对用户来说是非常烦人的,但如果这只是第一个请求,就不会了
见:
除非域属性无效,否则用户代理将拒绝cookie
指定包含源服务器的cookie的作用域。
例如,用户代理将接受具有域的cookie
中的“example.com”或“foo.example.com”属性
foo.example.com,但用户代理将不接受带有
“bar.example.com”或“baz.foo.example.com”的域属性
注意:出于安全原因,许多用户代理被配置为拒绝
与“公共后缀”对应的域属性。例如
一些用户代理将拒绝“com”或“co.uk”的域属性。
(详见第5.3节。)
:
谢谢你的回复,但我想你没有理解我的问题,正如你所说,当
example.com
被重定向到cookiemaker.com
,并且cookiemaker.com
无法将cookie设置为example.com
,但我发现cookie被设置为example.com
,就像我的问题一样。我不想将cookie设置为example.com
,而是设置为cookiemaker.com