Dan*_*vic 23 php cookies google-chrome-extension
我创建了一个chrome扩展程序,并从popup.js中调用了读取cookie的PHP脚本(使用Xhttprequest)。像这样:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
Run Code Online (Sandbox Code Playgroud)
但是我收到扩展错误的警告。
与(此处是我的域)的跨站点资源关联的cookie设置为未设置
SameSite
属性。如果将来的Chrome浏览器版本将cookie设置为SameSite=None
和,则仅会提供带有跨站点请求的cookieSecure
。您可以在“应用程序”>“存储”>“ 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);
Run Code Online (Sandbox Code Playgroud)
遵循此问题的指示。
Rob*_*ene 11
>= 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>";
Run Code Online (Sandbox Code Playgroud)
我对此也处于“反复试验”中,但是Google Chrome Labs的Github的这个回答对我有所帮助。我将其定义到我的主文件中,并且仅在一个第三方域中有效。仍在进行测试,但我渴望通过更好的解决方案来更新此答案:)
如果您的PHP在7.2之前,就像我的服务器那样:
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
或者,如果您的主机已经更新到7.3,则可以使用:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
您可以尝试检查Cookie的另一件事是启用下面的标志,用自己的话说,“将为可能受到此更改影响的每个cookie添加控制台警告消息”:
chrome://flags/#cookie-deprecation-messages
请参阅以下网址的完整代码:https : //github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md,他们也有相应的代码same-site-cookies
。
随着新功能的出现,SameSite=None
Cookie也必须标记为Secure
,否则将被拒绝。
注意:与问题没有直接关系,但是对其他人来说可能很有用,因为在开发我的网站时首先是我的关注:
如果您从问题中看到警告,其中列出了一些第三方网站(在我的情况下是google.com,是吧)-这意味着他们需要对其进行修复,而与您的网站无关。当然,除非警告中提到您的网站,否则在这种情况下添加即可Secure
解决该问题。
归档时间: |
|
查看次数: |
27434 次 |
最近记录: |