Ras*_*ihi 146 javascript cookies redirect
假设我有一个名为的网站a.com,当加载此网站的特定页面时,比如页面链接,我喜欢为另一个被调用的网站设置一个cookie b.com,然后将用户重定向到b.com.
我的意思是,在加载时a.com/link我想为其设置一个cookie b.com并将用户重定向到b.com.
我测试了它,浏览器实际上收到了cookie a.com/link,但它没有在重定向请求上发送该cookie b.com.这是正常的吗?
我们可以为其他域设置cookie吗?
qbe*_*220 113
您无法为其他域设置Cookie.允许这会带来巨大的安全漏洞.
您需要让b.com设置cookie.如果a.com将用户重定向到b.com/setcookie.php?c=value
setcookie脚本可以包含以下内容以设置cookie并重定向到b.com上的正确页面
<?php
setcookie('a', $_GET['c']);
header("Location: b.com/landingpage.php");
?>
Run Code Online (Sandbox Code Playgroud)
Jon*_*han 50
与最佳答案类似,但不是重定向到页面而是再次返回会导致糟糕的用户体验,您可以在域A上设置图像.
<img src="http://www.example.com/cookie.php?val=123" style="display:none;">
Run Code Online (Sandbox Code Playgroud)
然后在域名B上,即cookie.php中的example.com,您将拥有以下代码:
<?php
setcookie('a', $_GET['val']);
?>
Run Code Online (Sandbox Code Playgroud)
Hattip到李苏滨
你不能.这将是一个令人讨厌的安全风险.
无法为其他域设置Cookie.
如果要将数据传递到另一个域,可以将其编码到URL中.
a.com -> b.com/redirect?info=some+info (and set cookie) -> b.com/other+page
Run Code Online (Sandbox Code Playgroud)
如果您拥有a.my-company.com和b.my-company.com而不是just a.com,b.com则可以为.my-company.com域发布Cookie- 它会被接受并发送到两个域。
参见RFC6265:
用户代理将拒绝cookie,除非Domain属性为cookie的范围指定一个范围,该范围将包括原始服务器。例如,用户代理将接受来自foo.example.com的Domain属性为“ example.com”或“ foo.example.com”的cookie,但是用户代理将不接受Domain属性为的cookie。 “ bar.example.com”或“ baz.foo.example.com”。
注意:出于安全原因,许多用户代理配置为拒绝与“公共后缀”相对应的域属性。例如,某些用户代理将拒绝“ com”或“ co.uk”的域属性。(有关更多信息,请参见第5.3节。)
但是,尽管不建议使用图像/ iframe的上述解决方法,但不建议这样做。
| 归档时间: |
|
| 查看次数: |
170571 次 |
| 最近记录: |