Criei uma extensão chrome e, a partir do popup.js, chamei o script PHP (Using Xhttprequest) que lê o cookie. Como isso:
$cookie_name = "mycookie";
if(isset($_COOKIE[$cookie_name]))
{
echo $_COOKIE[$cookie_name];
}
else{
echo "nocookie";
}
Mas estou recebendo esse aviso em erros nas extensões.
Um cookie associado a um recurso entre sites em (Aqui está o meu domínio) foi definido sem o
SameSite
atributo Uma versão futura do Chrome só entregará cookies com solicitações entre sites se eles estiverem configurados comSameSite=None
eSecure
. Você pode revisar os cookies nas ferramentas do desenvolvedor em Aplicativo> Armazenamento> Cookies e ver mais detalhes em https://www.chromestatus.com/feature/5088147346030592 e https://www.chromestatus.com/feature/5633521622188032 .
Tentei criar um cookie como este, mas não ajudou.
setcookie($cookie_name,$cookie_value, time() + 3600*24, "/;samesite=None ","mydomain.com", 1);
Seguindo as instruções desta pergunta.
setcookie
substituição que requer um argumento adicional$sameSite
. O argumento pode serNone
,Lax
ouStrict
. Uma interface OOP também está disponível.Respostas:
Também estou em "tentativa e erro" por isso, mas esta resposta do Github do Google Chrome Labs me ajudou um pouco. Eu o defini no meu arquivo principal e funcionou - bem, apenas para um domínio de terceiros. Ainda estou fazendo testes, mas estou ansioso para atualizar esta resposta com uma solução melhor :)
Se você tiver PHP até 7.2, como meu servidor:
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Ou, se o seu host já estiver atualizado para 7.3, você pode usar:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
Outra coisa que você pode tentar verificar os cookies é ativar a bandeira abaixo, que - em suas próprias palavras - "adicionará mensagens de aviso do console para cada cookie potencialmente afetado por essa alteração":
chrome://flags/#cookie-deprecation-messages
Veja o código completo em: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md , eles também têm o código
same-site-cookies
.fonte
À medida que o novo recurso chega, os
SameSite=None
cookies também devem ser marcados comoSecure
ou serão rejeitados.Pode-se encontrar mais informações sobre a alteração nas atualizações de cromo e nesta postagem do blog
Nota : não está diretamente relacionado diretamente à pergunta, mas pode ser útil para outras pessoas que chegaram aqui, já que foi minha preocupação durante o desenvolvimento do meu site:
se você estiver vendo o aviso da pergunta que lista alguns sites de terceiros (no meu caso, era google.com, hein) - isso significa que eles precisam corrigi-lo e isso não tem nada a ver com o seu site. Obviamente, a menos que o aviso mencione seu site, nesse caso, a adição
Secure
deve corrigi-lo.fonte
fonte
Acabei corrigindo nossa instalação do Ubuntu 18.04 / Apache 2.4.29 / PHP 7.2 para o Chrome 80 instalando mod_headers:
Adicionando a seguinte diretiva às nossas configurações do Apache VirtualHost:
E reiniciando o Apache:
Ao revisar os documentos ( http://www.balkangreenfoundation.org/manual/en/mod/mod_headers.html ), notei que a condição "sempre" tem certas situações em que não funciona no mesmo conjunto de cabeçalhos de resposta. Portanto, não usar "sempre" é o que funcionou para mim com PHP, mas os documentos sugerem que se você quiser cobrir todas as suas bases, poderá adicionar a diretiva com e sem "sempre". Eu não testei isso.
fonte