Aviso sobre o SameSite Chrome 77

168

Desde a última atualização, estou tendo um erro com cookies relacionados ao atributo SameSite.

Os cookies são de desenvolvedores de terceiros (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts etc.)

Os erros no console do Chrome são assim.

A cookie associated with a cross-site resource at <URL> was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at <URL> and <URL>.
(index):1 A cookie associated with a cross-site resource at http://jquery.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://fontawesome.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at https://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://www.google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
(index):1 A cookie associated with a cross-site resource at http://gstatic.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.

Existe algo que eu preciso fazer na minha máquina ou servidor local ou é apenas algum recurso que eles devem implementar em versões futuras de suas bibliotecas?

peiblox
fonte
9
nada a ver com o seu código. é algo que seus servidores web terão que suportar.
Daniel A. White
Tenho o mesmo problema, isso significa que não podemos usar sites de terceiros em nosso código?
Love2Code 7/10/19
11
Você pode usar as bibliotecas sem nenhum problema. É apenas um aviso que o console lançará até implementá-lo em seus servidores como o @ DanielA.White disse antes.
18120 peiblox em 09/10/19
9
E o que exatamente acontece se o terceiro não consertar seus cookies até a data em que A future release of Chrome will only deliver ... meu site será interrompido? Parece que essa data futura é 02/04/2020 - não muito longe.
JK.
11
Conforme mencionado por @ DanielA.White, isso precisa ser corrigido no código de terceiros, consulte esta resposta para obter mais contexto.
Hooman Bahreini 16/01

Respostas:

142

Esse aviso do console não é um erro ou um problema real - o Chrome está apenas divulgando esse novo padrão para aumentar a adoção do desenvolvedor.

Não tem nada a ver com o seu código. É algo que seus servidores da web terão que suportar.

A data de lançamento de uma correção é 4 de fevereiro de 2020 por: https://www.chromium.org/updates/same-site

Fevereiro de 2020: lançamento da aplicação para o Chrome 80 estável: os comportamentos SameSite-por-padrão e SameSite = Nenhum-requer-Seguro começarão a ser lançados no Chrome 80 Stable para uma população limitada inicial a partir da semana de 17 de fevereiro de 2020 , excluindo o Feriado do dia do presidente dos EUA na segunda-feira. Estaremos monitorando e avaliando de perto o impacto do ecossistema a partir desta fase limitada inicial, através do aumento gradual das implementações.

Para a programação completa do lançamento do Chrome, clique aqui .

Resolvi o mesmo problema adicionando no cabeçalho de resposta

response.setHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");

SameSiteimpede que o navegador envie o cookie junto com solicitações entre sites. O principal objetivo é mitigar o risco de vazamento de informações de origem cruzada. Ele também fornece alguma proteção contra ataques de falsificação de solicitação entre sites. Os valores possíveis para o sinalizador são Lax ou Strict.

Cookies SameSite explicados aqui

Consulte isso antes de aplicar qualquer opção.

Espero que isso ajude você.

Rahul Mahadik
fonte
39
Você já fez alguma pesquisa sobre como isso pode ser tratado ao gerar scripts de terceiros que definem cookies (como o Google Analytics e o Google Tag Manager)?
BRass 14/10/19
26
onde devo adicionar o cabeçalho de resposta? obrigado.
Kris Wen
2
Se você estiver usando o .NET, anexar o web.config ou adicionar regras de reescrita de URL no IIS resolveria esse problema. O crédito vai para a solução em stackoverflow.com/questions/38954821/…
BDarley
3
Existe uma solução que não envolva JavaScript?
posfan12
11
Devo dizer que um aviso amigável realmente desencadeia o TOC de muitos desenvolvedores como eu. Minha frustração com o console sujo aumenta consideravelmente quando vejo o YouTube, uma propriedade do Google, um criminoso que gera erros de console no Google Chrome. É assim que eu falei.
Marc
22

Se você estiver testando no host local e não tiver controle dos cabeçalhos de resposta, poderá desativá-lo com um sinalizador chrome.

Visite o URL e desative-o: chrome: // flags / # mesmo site por cookies padrão Screenshot de cookies do SameSite por padrão

Preciso desativá-lo porque o Chrome Canary começou a aplicar essa regra a partir da V 82.0.4078.2 aproximadamente e agora não está configurando esses cookies.

Nota: eu só ativo esse sinalizador no Chrome Canary que eu uso para desenvolvimento. É melhor não ativar a bandeira para a navegação diária do Chrome pelos mesmos motivos que o Google a está apresentando.

Vai
fonte
11
Desabilitar esse sinalizador e reiniciar o canário não funcionou para mim, então acabei de adicionar -SameSitea caixa "Filtro" principal, que também usei para remover esta questão irritante do mapa de origem => superuser.com/questions/1523427/…
Avolition
4

Para elaborar a resposta de Rahul Mahadik, isso funciona para o MVC5 C # .NET:

AllowSameSiteAttribute.cs

public class AllowSameSiteAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        var response = filterContext.RequestContext.HttpContext.Response;

        if(response != null)
        {
            response.AddHeader("Set-Cookie", "HttpOnly;Secure;SameSite=Strict");
            //Add more headers...
        }

        base.OnActionExecuting(filterContext);
    }
}

HomeController.cs

    [AllowSameSite] //For the whole controller
    public class UserController : Controller
    {
    }

ou

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }
Joel Wiklund
fonte
Você pode, por favor, olhar para o meu código. Também está relacionado à política do CORS pelo chrome. stackoverflow.com/questions/60556740/…
Abhay salvi
4

Corrigido adicionando crossorigin à tag de script.

From: https://code.jquery.com/

<script
  src="https://code.jquery.com/jquery-3.4.1.min.js"
  integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo="
  crossorigin="anonymous"></script>

Os atributos de integridade e de origem cruzada são usados ​​para verificação de Integridade de Sub-recurso (SRI). Isso permite que os navegadores garantam que os recursos hospedados em servidores de terceiros não sejam violados. O uso do SRI é recomendado como uma prática recomendada, sempre que as bibliotecas são carregadas de uma fonte de terceiros. Leia mais em srihash.org

John Magnolia
fonte
srihash.org diz: Infelizmente não conhecemos este domínio.
Vlad
Onde encontro a tag de script? Está no web.config?
CarlD 28/04
11
O @CarlD da mensagem de erro encontra qual script está causando o erro e, em seguida, exibe a fonte html da página
John Magnolia
@JohnMagnolia Acabei de fazer e nada aconteceu.
CarlD 30/04