如何为其他域设置 Cookie

2022-08-30 01:08:33

假设我有一个名为的网站,当加载此站点的特定页面时,说页面链接,我喜欢为另一个站点设置一个名为的cookie,然后将用户重定向到。a.comb.comb.com

我的意思是,在加载时,我想为用户设置一个cookie并将用户重定向到。a.com/linkb.comb.com

我测试了它,浏览器实际上从 收到了 cookie,但它没有在重定向请求上发送该 cookie 到 。这正常吗?a.com/linkb.com

我们可以为其他域名设置 Cookie 吗?


答案 1

您无法为其他域设置 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");
?>

答案 2

与顶部答案类似,但不是重定向到页面并再次返回,这将导致糟糕的用户体验,您可以在域A上设置图像。

<img src="http://www.example.com/cookie.php?val=123" style="display:none;">

然后在 cookie 中 example.com 域 B 上.php您将拥有以下代码:

<?php
    setcookie('a', $_GET['val']);
?>

Hattip to Subin