SameSite cookies: prevención de ataques CSRF

Índice de contenidos

Same-Site Cookie es un atributo definido en 2016 en el documento RFC6265bis (actualizado en 2019). Éste permite a los servidores afirmar que una cookie no debe ser enviada en peticiones cross site. Gracias a este atributo, los navegadores con las nuevas mejoras reducirán el riesgo de fuga de información y, en consecuencia, mejorará la protección de ataques cross-site mediante peticiones falsas.

Navegadores como Chrome, Firefox, Edge y otros están modificando sus funcionalidades para estar en línea con la nueva propuesta de la IETF, la cual obliga a los desarrolladores a proveer estas mejoras de seguridad a los usuarios. Para más detalle podéis acudir al documento Incrementally Better Cookies.

En la web coockiestatus.com podéis encontrar más información respectiva a la gestión de cookies para los navegadores más utilizados del mercado.

En este otro enlace, podréis verificar las cookies generadas en vuestro site. Además, este site reporta  las cookies creadas en gestores de tags como GTM y Tealium.

En el caso de Safari, webkit definió el protocolo ITP, el cual es todavía más restrictivo en relación a la gestión de cookies.

Este requerimiento de la IETF será adoptado por todos los navegadores web. La mejora implica mayor  seguridad durante la sesión de los usuarios en la web.

Aquí os dejamos las implicaciones que tiene asignar un valor u otro al atributo SameSite:

SameSite = Strict 

Si se establece esta configuración, sólo se puede acceder a la cookie cuando se visita el domino original dónde ésta ha sido establecida. Es decir, “Strict” bloquea por completo una cookie que se envía a doctormetrics.com desde metriplica.com donde ésta ha sido generada. Esto significa que en doctormetrics.com no tendríamos esta cookie perdiendo la información asociada a ésta. También al hacer click a un enlace top-level en un dominio third-party el cual redirige a tu site, el navegador bloqueará esta cookie. 

Set-Cookie: first_party_session=metriplica;  SameSite=Strict; 

Establecer una política de cookies con SameSite=Strict, puede ser una buena opción para aplicaciones que requieran un nivel de seguridad alto, por ejemplo, en el sector bancario.

SameSite = None

Estableciendo el atributo con valor None, las cookies funcionarán como lo han hecho hasta el día de hoy. Esto implica que se podrán utilizar en cross-site, pero con el añadido de que se debe añadir el parámetro Secure. Si la cookie no contiene el parámetro Secure, será rechazada.

El atributo ‘Secure’, sirve para informar al navegador que la petición es HTTPS. Este atributo hace tiempo que existe, pero entra como requisito vigente debido a las modificaciones que están haciendo los navegadores para cumplir con las recomendaciones de la IETF.

Set-Cookie: third_party_session=metriplica;  SameSite=None; Secure

SameSite = Lax

A diferencia de las cookies definidas como None, las cookies ‘Lax’ solo se envían en peticiones que ocurren dentro del mismo site. A diferencia con la política Strict, Lax permite acceder a peticiones top-level mediante HTTP como GET. 

Eso sí, para las solicitudes POST en cross-domain o al cargar un site cross-domain, la cookie no se enviará. Esto implica que se debe enviar cuando se navegue al site a través de un enlace top-level.

Si el atributo SameSite no tiene asignado valor, una vez se actualicen los navegadores con las nuevas mejoras en estándares de seguridad, por defecto tratarán esa cookie como “Lax”. Esto solo ocurre con enlaces top-level, en otros casos el navegador no asignará ningún valor y la cookie será rechazada.

Set-Cookie: first_party_session=metriplica;  SameSite=Lax; 

Para todas las peticiones que no sean top-level, se deberá forzar la inclusión del parámetro Lax.  En la tabla os mostramos las que deberán ser forzadas por los developers, las que contienen Lax es porque las asigna el navegador por defecto, aún así recomendamos definir el atributo: 

Afectaciones de las nuevas mejoras del atributo SameSite

Una vez se actualicen los navegadores, se verán afectados estos aspectos en relación a la gestión de las cookies. Esto también afecta a cross-site. 

Iframes

Si en sites tenéis iframes que provean servicios a sites de domino third-party debéis asegurar de que la cookie sea considerada como third-party (SameSite= None; Secure). 

Si este <iframe> lo invocan en su dominio o subdominio, debe definirse  como Lax.

Entorno webview

Para el entorno de navegación WebView, en dispositivos Android, se deberá actualizar la cookie vía la  CookieManager API

Headers o JavaScript

Para las cookies generadas mediante headers o JavaScript, deben considerarse como “SameSite=None; Secure” si su uso es para cross-site.

Peticiones HTTP

Al enviar una petición GET, la cookie quedará marcada automáticamente como “SameSite=Lax”, ejemplo al hacer click a un enlace externo. 

Sin embargo para peticiones POST que necesitan de validación (formularios web), deben asegurar que la petición de retorno defina la cookie como “SameSite=None; Secure.”

Servicios third party: píxels Google Analytics, Tealium, CRM, servicios de pago, etc.

Para todas las cookies relacionadas con píxeles de terceros o servicios de Analítica web cookie de Google Analytics, Adobe u otros, se deberá encargar el proveedor de añadir las mejoras pertinentes en sus snippets actualizando así sus servicios.

Desde Metriplica recomendamos estar pendientes de las posibles actualizaciones de dependencias o snippets de terceros para adaptarse al nuevo comportamiento.

Bugs o incompatibilidades

Hay aplicaciones server-side que no soportan el atributo “SameSite”, os proporcionamos un enlace con los clientes no compatibles

En Safari 12, si se establece una cookie con la política de “SameSite=None”, lo interpreta como “Strict”. 

Es decir, si se define para Chrome como “None”, Safari 12 la interpreta como “Strict”, esto hace que la cookie no funcione en cross-site si el usuario utiliza esa versión de Safari.

Por ello, desde el lado del servidor se deben de tomar las medidas necesarias para gestionar este caso en concreto. Para más información, podéis acudir a bugs.webkit.org.

Conclusión

Las nuevas modificaciones que van a adoptar los navegadores afectarán a la experiencia de navegación del usuario y al posible seguimiento de datos o funcionalidades de la web que se alimenten de la información almacenada en las cookies si no se toman las medidas pertinentes.

En el caso de píxeles de servicios third-party o cookies de servicios de Analítica, cada proveedor  se encargará de gestionar este asunto.

Cada cliente debería revisar el resto de cookies que utilizan en su site para asegurar que cumplan con el estándar funcional de la IEF.


No dudes en contactar con nosotros, si quieres más información al respecto o tienes cualquier duda.

Share on facebook
Share on twitter
Share on linkedin
Share on email
4 min
Suscríbete a nuestra newsletter

Los mejores artículos de analítica digital para potenciar tu negocio.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entradas relacionadas

Cómo configurar una propiedad App+Web en Google Analytics

Las nuevas propiedades de App+Web de Google analytics nos permiten añadir hasta 50 flujos de datos de uno u otro tipo. En este artículo te explicamos cómo crear este tipo de propiedades y cómo configurarlas para web.

5 minutos

Dificultad

Técnicas avanzadas de personalización [Dynamic Yield]

Un test de optimización es una estupenda herramienta a la hora de incrementar nuestra tasa de conversión. Pero un resultado aparentemente inconcluyente puede ocultar oportunidades de mejora que una herramienta de personalización no dejaría escapar.

3 minutos

Dificultad

Nuevas propiedades App + Web de Google Analytics

Las propiedades App + Web son el nuevo modelo de propiedades de Google Analytics que nos permiten consolidar los datos de páginas webs y aplicaciones en un solo sitio, facilitando el análisis multiplataforma.

3 minutos

Dificultad

Ir arriba

Esta web utiliza ‘cookies’ de terceros. Al clicar aceptar está aceptando el uso que realizamos de las cookies. Para más información puede consultar nuestra Política de cookies