Advertencia de SameSite Chrome 77

168

Desde la última actualización, tengo un error con las cookies, relacionadas con el atributo SameSite.

Las cookies son de desarrolladores externos (Fontawesome, jQuery, Google Analytics, Google reCaptcha, Google Fonts, etc.)

Los errores en la consola de Chrome son así.

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.

¿Hay algo que deba hacer en mi máquina o servidor local o es alguna característica que deberían implementar en futuras versiones de sus bibliotecas?

peiblox
fuente
99
nada que ver con tu código. es algo que sus servidores web tendrán que soportar.
Daniel A. White
Tengo el mismo problema, ¿significa esto que no podemos usar sitios web de terceros en nuestro código?
Love2Code
1
Puede usar las bibliotecas sin ningún problema. Es solo una advertencia que la consola lanzará hasta que implementen eso en sus servidores como dijo anteriormente @ DanielA.White.
peiblox
99
¿Y qué sucede exactamente si el tercero no repara sus cookies en la fecha en que A future release of Chrome will only deliver ... se romperá mi sitio? Parece que esa fecha futura es 02/04/2020, no muy lejos.
JK.
1
Como mencionó @ DanielA.White, esto debe corregirse en el código de terceros, consulte esta respuesta para obtener más contexto.
Hooman Bahreini

Respuestas:

142

Esta advertencia de la consola no es un error o un problema real: Chrome solo está corriendo la voz sobre este nuevo estándar para aumentar la adopción del desarrollador.

No tiene nada que ver con tu código. Es algo que sus servidores web tendrán que soportar.

La fecha de lanzamiento de una solución es el 4 de febrero de 2020 por: https://www.chromium.org/updates/same-site

Febrero de 2020: implementación de Chrome 80 estable: los comportamientos SameSite-by-default y SameSite = None-required-Secure comenzarán a implementarse en Chrome 80 Stable para una población limitada inicial a partir de la semana del 17 de febrero de 2020 , excluyendo el Día festivo del presidente de los Estados Unidos el lunes. Estaremos monitoreando y evaluando de cerca el impacto del ecosistema desde esta fase limitada inicial a través del aumento gradual de los despliegues.

Para ver el calendario completo de lanzamiento de Chrome, consulte aquí .

Resolví el mismo problema agregando un encabezado de respuesta

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

SameSiteevita que el navegador envíe la cookie junto con las solicitudes entre sitios. El objetivo principal es mitigar el riesgo de fuga de información de origen cruzado. También proporciona cierta protección contra ataques de falsificación de solicitudes entre sitios. Los valores posibles para el indicador son Lax o Strict.

Cookies de SameSite explicadas aquí

Consulte esto antes de aplicar cualquier opción.

Espero que esto te ayude.

Rahul Mahadik
fuente
39
¿Ha realizado alguna investigación sobre cómo se podría manejar esto al incorporar scripts de terceros que configuran cookies (como Google Analytics y Google Tag Manager)?
BRass
26
¿Dónde debo agregar el encabezado de respuesta? Gracias.
Kris Wen
2
Si por casualidad está usando .NET, agregar el web.config o agregar reglas de reescritura de URL en IIS resolvería este problema. El crédito va a la solución en stackoverflow.com/questions/38954821/…
BDarley
3
¿Hay alguna solución que no implique JavaScript?
posfan12
11
Debo decir que una advertencia amistosa realmente desencadena el TOC de muchos desarrolladores como yo. Mi frustración por la consola sucia aumenta considerablemente cuando veo YouTube, una propiedad de Google, un delincuente que genera errores de consola en Google Chrome. Esta es la forma en que he hablado.
Marc
22

Si está probando en localhost y no tiene control de los encabezados de respuesta, puede deshabilitarlo con un indicador de Chrome.

Visite la url y desactívela: chrome: // flags / # same-site-by-default-cookies Captura de pantalla de cookies predeterminada de SameSite

Necesito deshabilitarlo porque Chrome Canary acaba de comenzar a aplicar esta regla a partir de aproximadamente V 82.0.4078.2 y ahora no está configurando estas cookies.

Nota: Solo activo esta bandera en Chrome Canary que uso para el desarrollo. Es mejor no activar la bandera para la navegación diaria de Chrome por las mismas razones por las que Google la está presentando.

Será
fuente
1
La desactivación de esta bandera y el relanzamiento de canario no funcionó para mí, así que acaba de agregar -SameSitea la caja principal de "filtro", que también he utilizado para eliminar este problema molesto Sourcemap => superuser.com/questions/1523427/...
Abulia
4

Para explicar la respuesta de Rahul Mahadik, esto funciona para 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
    {
    }

o

    public class UserController : Controller
    {
        [AllowSameSite] //For the method
        public ActionResult Index()
        {
            return View();
        }
    }
Joel Wiklund
fuente
¿Puedes mirar mi código? También está relacionado con la política CORS de Chrome. stackoverflow.com/questions/60556740/…
Abhay salvi
4

Se solucionó agregando crossorigin a la etiqueta del script.

De: https://code.jquery.com/

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

Los atributos de integridad y origen cruzado se utilizan para la verificación de integridad de recursos secundarios (SRI). Esto permite a los navegadores garantizar que los recursos alojados en servidores de terceros no hayan sido alterados. Se recomienda el uso de SRI como una mejor práctica, siempre que las bibliotecas se carguen de una fuente de terceros. Lea más en srihash.org

John Magnolia
fuente
srihash.org dice que lamentablemente no conocemos este dominio.
Vlad
¿Dónde encuentro la etiqueta del script? ¿Está en la web.config?
CarlD
1
@CarlD del mensaje de error encuentre qué script está causando el error y luego vea la fuente html de la página web
John Magnolia
@JohnMagnolia que acabo de hacer y no pasó nada.
CarlD