【问题标题】:Cookies are not being set for '.amazonaws.com' in chrome 57 and 58 browsers在 chrome 57 和 58 浏览器中未为“.amazonaws.com”设置 Cookie
【发布时间】:2017-04-21 03:03:31
【问题描述】:

升级到 chrome 57 或 58 后,未为“amazonaws.com”和子域设置 Cookie。 以前它曾经工作正常。

以下是其中一个 EC2 实例中的测试文件,它在浏览器中为域“.amazonaws.com”设置了一个 cookie。 但是,cookie 永远不会被设置。 (注意:我们访问的是 amazonaws.com 中的主机 EC2 公共 DNS)

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/",     ".amazonaws.com"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

但是当我们使用我们的域“.company.com”设置 cookie 并通过我们的子域 DNS 访问时。 Cookie 正在那里设置。

只有在升级到 chrome 57 或 58 后才会出现这种 cookie 未设置的行为。

关于 Chrome 更新的 COOKIE 特定更改的任何指针?

【问题讨论】:

    标签: google-chrome cookies amazon-ec2


    【解决方案1】:

    Chrome 的这种行为似乎是正确的。

    This WontFix/WorkingAsIntended bug report -- 关于另一个(非 AWS)域 -- 引用 this change in Chromium -- 这似乎又与 this change 相关联到 Public Suffix List... 一个添加了 @987654325 的更改@ 及其在其他 AWS 区域的同行加入列表。

    以前,compute-1.amazonaws.com 在列表中没有前面的通配符。

    此更改应有效防止在(例如)ec2-203-0-113-0.compute-1.amazonaws.com... 上设置 cookie

    ec2-203-0-113-0.compute-1.amazonaws.com 不是您所在域中的主机名。

    这只是一个 IP 地址的正向/反向 DNS 条目,今天恰好分配给您。分配给您的时间可能很短,也可能很长,但众所周知,五分钟后您可以停止使用它,它可能会分配给其他人,并且任何浏览器访问他们认为的内容您的网站明天会尽职尽责地将其 cookie 移交给恰好正在监听该地址的任何服务器……可能会创建一个巧妙的漏洞利用向量。

    如果您需要从您的 EC2 实例设置 cookie,您应该将您自己域中的主机名指向这些实例。

    【讨论】:

    • 谢谢迈克尔!这就回答了这个问题。我进行了一些其他实验来证实这一点。
    猜你喜欢
    • 1970-01-01
    • 2018-10-26
    • 2021-09-30
    • 2019-07-25
    • 2023-03-16
    • 1970-01-01
    • 2020-10-07
    • 2019-08-02
    相关资源
    最近更新 更多