【发布时间】:2020-01-31 04:04:10
【问题描述】:
我创建了一个 chrome 扩展,并从 popup.js 我调用了读取 cookie 的 PHP 脚本(使用 Xhttprequest)。像这样:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
但我在扩展程序错误时收到此警告。
与(这是我的域)的跨站点资源关联的 cookie 设置为没有
SameSite属性。未来版本的 Chrome 将仅通过设置为SameSite=None和Secure的跨站点请求传递 cookie。您可以在开发人员工具中的 Application>Storage>Cookies 下查看 cookie,并在 https://www.chromestatus.com/feature/5088147346030592 和 https://www.chromestatus.com/feature/5633521622188032 查看更多详细信息。
我尝试创建一个这样的 cookie,但没有帮助。
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);
遵循this question 的说明。
【问题讨论】:
-
我猜它还说“安全”,意思是 https。
-
你可以按照这个例子来解决这个问题:stackoverflow.com/a/58723552/6215447
-
您可以在 PHP 5.4+ 上使用 a third-party library 管理 cookie,提供一个带有附加参数
$sameSite的setcookie替换。参数可以是None、Lax或Strict。 OOP 接口也可用。