在 Chrome 57 和 58 浏览器中未为“.amazonaws.com”设置 Cookie

aru*_*nk2 4 cookies google-chrome 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];
}
?>
Run Code Online (Sandbox Code Playgroud)

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

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

有关于 chrome 更新的 COOKIE 特定更改的指针吗?

Mic*_*bot 5

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

此 WontFix/WorkingAsIntending 错误报告——关于另一个(非 AWS)域——引用了Chromium 中的这一更改——反过来,这似乎与公共后缀列表的此更改相关......这一更改添加了及其其他 AWS 区域的同行也已加入该列表。*.compute-1.amazonaws.com

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

此更改应该有效地防止在(例如)上设置 cookie ec2-203-0-113-0.compute-1.amazonaws.com...如果您考虑一下,无论如何,这种做法毫无意义,因为...

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

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

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