我创建了一个chrome扩展,并从popup.js中调用PHP (使用Xhttprequest)读取cookie。如下所示:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}但是我收到了扩展错误的警告。
在没有
SameSite属性的情况下,设置了与跨站点资源相关的cookie (这里是我的域)。Chrome的未来版本只有在SameSite=None和Secure的情况下,才会提供带有跨站点请求的cookie。您可以在Application>Storage>Cookies下查看开发人员工具中的cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032上查看更多详细信息。
我试着做这样的曲奇,但没什么用。
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);按照这问题的说明。
发布于 2019-10-04 14:32:08
我也对此感到“试错”,但谷歌Chrome的GitHub给了我一点帮助。我把它定义到我的主文件中,它起作用了--嗯,只有一个第三方域。仍然在进行测试,但我渴望用更好的解决方案更新这个答案:)
我现在使用的是PHP7.4,这个语法运行良好(2020年9月):
$cookie_options = array(
'expires' => time() + 60*60*24*30,
'path' => '/',
'domain' => '.example.com', // leading dot for compatibility or use subdomain
'secure' => true, // or false
'httponly' => false, // or false
'samesite' => 'None' // None || Lax || Strict
);
setcookie('cors-cookie', 'my-site-cookie', $cookie_options);如果您有PHP7.2或更低的(如下面所述):
setcookie('key', 'value', time()+(7*24*3600), "/; SameSite=None; Secure");
如果您的主机已经更新为PHP7.3,您可以使用(感谢Mahn的评论):
setcookie('cookieName', 'cookieValue', [
'expires' => time()+(7*24*3600,
'path' => '/',
'domain' => 'example.com',
'samesite' => 'None',
'secure' => true,
'httponly' => true
]);您可以尝试检查cookie的另一件事是启用下面的标志,用他们自己的话说,该标志“将为每个可能受到此更改影响的cookie添加控制台警告消息”:
chrome://flags/#cookie-deprecation-messages
请参阅:https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md的全部代码,他们也有same-site-cookies的代码。
发布于 2019-10-14 22:08:08
发布于 2020-03-17 05:23:35
>= PHP 7.3
setcookie('key', 'value', ['samesite' => 'None', 'secure' => true]);
< PHP 7.3
exploit the path
setcookie('key', 'value', time()+(7*24*3600), "/; SameSite=None; Secure");
Emitting javascript
echo "<script>document.cookie('key=value; SameSite=None; Secure');</script>";https://stackoverflow.com/questions/58191969
复制相似问题