Con el lanzamiento estable de Chrome 80 este mes, Chrome comenzará a aplicar un nuevo sistema de clasificación de cookies seguro por defecto, tratando las cookies que no tienen un valor de SameSite declarado como las cookies de SameSite = Lax . Solo cookies configuradas como SameSite = None; Secure estará disponible en contextos de terceros, siempre que se acceda a ellos desde conexiones seguras.
Antecedentes.
Las Cookies es uno de los métodos para agregar y mantener de forma persistentes variables de estado para sitios web. Durante los años las
capacidades han crecido y evolucionado, dejando en las plataformas algunas cuestiones problemáticas de legado. Para resolver esto, en los
navegadores de internet (Chrome, Firefox y Edge) están realizando cambios en su comportamiento para reforzar los elementos por defecto para
conservar la privacidad.
Cambios al comportamiento por default sin SameSite
Strict
En los nuevos cambios de seguridad de los navegadores establecen el valor Lax a la variable SameSite, esto normalmente es omitido por los
desarrolladores. La introducción del atributo SameSite en una cookie, provee tres diferentes formas de controlar el comportamiento:
Strict.
Con este valor en la cookie solo se podría enviar en el contexto del dominio que las genera (first-party), es decir, la cookie solo podría
ser enviado si el sitio para la cookie coincide con el sitio actual. No envía ninguna cookie en las peticiones que se realizan desde sitios
diferentes a donde se originaron.
•
Set-Cookie: promo_shown=1; SameSite=Strict
Lax (Default).
Con valor Lax(relajado) las cookies no se envían, solo si el usuario selecciona cualquier otro enlace del sitio las cookies pueden
enviarse.
•
Set-Cookie: promo_shown=1; SameSite=Lax
None.
Las cookies pueden ser enviadas en todos los contextos, lo que significa que puedes usar este valor para comunicar claramente que
quieres intencionalmente que las cookies sean enviadas en contexto de dominios externos (third-party)
•
Set-Cookie: promo_shown=1; SameSite=Lax
Agregando la directiva Secure al final de la declaración de la cookie, significa que requiere un contexto de seguridad.
Set-Cookie: widget_session=abc123; SameSite=None; Secure
Solución - Configuración
La solución puede estar orientada a definir las propiedades de seguridad a nivel web.config de cada aplicación o configurar el URL Rewrite desde el IIS a
nivel Sitio o a nivel raíz del IIS, este último fue el que utilizamos ya que se hereda la configuración a todos los sitios y aplicaciones internas del servidor.
El primer paso es seleccionar la opción URL Rewrite de la lista de características del servidor web:
Sobre la configuración general de iis:
Dentro de la vista de URL Rewrite seleccionamos la opción View Server Variables
Adicionamos una nueva variable del servidor nombrada RESPONSE_Set-Cookie:
Regresamos a la vista de reglas dando click en la opción "Back to Rules", agregamos una nueva regla seleccionando la opción Add Rule(s) de tipo Outbound
rules en blanco:
Proporcionamos las siguientes características de la regla:
Por ultimo se recomienda reiniciar el iis