在Chrome 57和58浏览器中没有为'.amazonaws.com'设置Cookie

时间:2017-04-20 13:15:51

标签: google-chrome cookies amazon-ec2

升级到Chrome 57或58后,没有为'amazonaws.com'和子域设置Cookie。 之前它曾经很好用。

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

<?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正在那里设置。

这种cookie未设置的行为仅在升级到chrome 57或58之后才发生。

任何针对COOKIE的指针都会更改Chrome更新吗?

1 个答案:

答案 0 :(得分:4)

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

This WontFix/WorkingAsIntended bug report - 关于另一个(非AWS)域名 - 引用this change in Chromium - 反过来似乎与this changePublic Suffix List相关联。 ..将其他AWS区域中的boolean result = n/n * 100 <= 100; 及其对等项添加到列表中的更改。

以前,*.compute-1.amazonaws.com位于列表中,前面没有通配符。

此更改应有效防止在(例如)compute-1.amazonaws.com上设置Cookie ...如果您考虑它,无论如何都没有意义,因为......

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

它只是一个IP地址的转发/反向DNS条目,今天恰好分配给您。分配给你的时间可能是短时间或长时间,但是对于所有人都知道,从现在起五分钟后你就可以停止使用它,它可以分配给其他人,任何浏览器访问他们认为的是你的网站将尽职尽责地将其cookie交给任何正在收听该地址的服务器,明天......可能会创建一个整洁的漏洞利用载体。

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