Asegura cookies de respuesta HTTP

Posted on by

Las Cookies son un fragmento de la información intercambiada entre la página web y el navegador del usuario que permite recordar los datos de acceso del usuario al sitio web a través del protocolo HTTP.

Los principales objetivos de las cookies son, en primer lugar, la gestión de sesiones, en segundo lugar, las preferencias del usuario y por otro lado, el rastreo, almacenamiento y análisis del comportamiento de quien accede al sitio web.

Estas se envían con cada solicitud del navegador y hoy en día los navegadores como Chrome, Firefox y Edge ya han ajustado sus funcionalidades según las propuestas de IEFT para mejora de la seguridad de la información que gestionan las cookies en la navegación web.

A continuación la configuración para las respuestas de Cookies HTTP seguras y mitigar ataques.

Las cabeceras de respuesta HTTP se configuran con la directiva Set-Cookie y solamente se deberían enviar al servidor en peticiones cifradas mediante el protocolo HTTPS y nunca almacenar información sensible.

Sintaxis general para configuración en Apache

Set-Cookie: =< cookie-value>
Set-Cookie: =< cookie-value>; Expires=< date>
Set-Cookie: =< cookie-value>; Max-Age=< non-zero-digit>
Set-Cookie: =< cookie-value>; Domain=< domain-value>
Set-Cookie: =< cookie-value>; Path=< path-value>

Podemos indicar estas repuestas por cookie o utilizar una variable general para incluir a todas las cookies de nuestro sitio, como por ejemplo:

Set-Cookie ^(.*)$ $1;

A partir de estas los parámetros se aplicarán a todas las cookies de nuestro sitio, por ejemplo:

Set-Cookie ^(.*)$ "$1; Domain=ericaaguado.es;

Existen diferentes mecanismos para modificar el contenido de una cookie para conseguir así información no autorizada, realizar robos de identidad o sesiones e incluso inyectar códigos maliciosos y modificar datos del sitio web. Entre ellos los más conocidos métodos son las técnicas de falsificación de peticiones o en inglés Cross Site Request Forgery (CSRF o XSRF) o las técnicas de inyección de código malicioso o en inglés Cross-site scripting (XSS).

2. Proteger Cookies contra XSS:

Para ello necesitamos añadir el parámetro de Cookie HttpOnly y así conseguimos evitar que códigos JavaScript accedan a las cookies, lo que mitigará los ataques contras scripts cross-site XSS.

Los parámetros a incluir son:

  • HttpOnly -> Impide acceder a la cookie a través del script y desde el lado del cliente, incluso si hay una vulnerabilidad que lo permita.
  • Secure -> Impide establecer cookies en peticiones inseguras, por lo que solamente se aceptarán por https.

Ejemplo de Sintaxi para Apache:

Header edit Set-Cookie ^(.*)$ $1; Domain=ericaaguado.es; HttpOnly; Secure;
Header always edit Set-Cookie ^(.*)$ $1; Domain=ericaaguado.es; HttpOnly; Secure;

3. Proteger Cookies contra CSRF:

Estos ataques aprovechan las cookies de inicio de sesión para falsificar las solicitudes entre sitios web, por lo que podemos controlar desde donde se permiten estas solicitudes.

Los parámetros a incluir son:

  • SameSite = Strict -> Permite la navegación solamente cuando la cookie se envia desde el propio dominio o dominio original. Por lo que si se intenta acceder desde otro dominio a través de una url que redirige esta cookie quedará bloqueada.
  • SameSite = None -> Deshabilita la funcionalidad de protección por lo que se podrá realizar ataques de cross-site. Además se debe añadir el parámetro Secure ya que sino esta cookie será rechazada.
  • SameSite = Lax -> Permite el envío de cookies desde peticiones cross-site, como las peticiones a imágenes o frames, que redirijan desde la url del sitio a una url externa, por ejemplo siguiendo un enlace de login hacia otro sitio.

Ejemplo de Sintaxis para Apache:

Header edit Set-Cookie ^(.*)$ $1; Domain=ericaaguado.es; SameSite=strict;
Header always Set-Cookie ^(.*)$ $1; Domain=ericaaguado.es; SameSite=strict;

Existe una multitud de parámetros y variables que podemos configurar para centrar al máximo el control de nuestras cookies y así asegurar al máximo nuestro sitio contra este tipo de ataques. Podemos configurar estas directivas en la misma cabecera de respuesta apache dentro del mod_headers.so en el fichero de configuración de apache y luego reiniciar el servicio para aplicar los cambios.

4. Ejemplo para Apache:

Header edit Set-Cookie ^(.*)$ $1; Domain=ericaaguado.es; HttpOnly; Secure; SameSite=strict;


Por ahora no hay comentarios

Deja un comentario

Política de comentarios:
Responsable: Érica Aguado Expósito.
Finalidad: Gestionar los comentarios de este blog.
Legitimación: Su consentimiento.

Importante:
Su dirección de correo electrónico no será publicada.
Los campos obligatorios están marcados *.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Logo reanimando webs en wordpress, erica aguado, valencia.
Resumen de privacidad

¿Para qué finalidades se utiliza mi información y quiénes la utilizan?

Este Sitio Web utiliza cookies propias y de otras entidades, para que podamos ofrecerle la mejor experiencia de usuario posible.

La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Información adicional: Puede conocer la información completa sobre el uso de las cookies, su configuración, origen, finalidades y derechos en nuestra Política de Cookies.

Si das tu consentimiento para los fines anteriores, también permites que este sitio web realice el procesamiento de los siguientes datos: Cotejo de datos sin conexión, datos de localización geográficos y vinculación de dispositivos.