Consejos prácticos sobre privacidad para su empresa

Image of Adriaan van Rossum

Publicado el 28 may 2020 y editado el 21 feb 2024 por Adriaan van Rossum

Como fundador de Simple Analytics, me encuentro con problemas de privacidad mientras desarrollamos nuestro producto. Basándome en esos aprendizajes, me gustaría mostrarte algunos consejos prácticos para mejorar la privacidad de tus visitantes. Algunos consejos parecen muy lógicos, pero pueden ser difíciles de poner en práctica. Por eso he proporcionado ejemplos con cada consejo, para que tú o tu equipo podáis aplicarlos sin tener que hacer toda la investigación.

En este post, me explayaré sobre servicios de terceros, proveedores de CDN, widgets sociales, ser ético con tus visitantes, correos electrónicos de marketing, almacenamiento de datos, datos PII, anonimización de IP, syslog y autenticación de dos factores.

Algunos consejos pueden resultar un poco técnicos y, si no tienes conocimientos técnicos, no dudes en saltártelos y remitirlos a tu equipo técnico.

  1. Servicios de terceros
    1. Carga scripts de terceros sólo cuando sea necesario
  2. No dé demasiado poder a su proveedor de CDN
    1. Integridad de los recursos secundarios
    2. Atributo de origen cruzado
    3. Atributo de política de referencia
    4. Política de seguridad de contenidos
  3. Elimine los widgets sociales
    1. Sustituir el botón de compartir de Facebook
    2. Tweets incrustados en Twitter
  4. No engañes a tus visitantes
    1. Banners de cookies
  5. Correos electrónicos
    1. Correos electrónicos de marketing
    2. Seguimiento del correo electrónico
    3. Imágenes de correo electrónico
    4. Cómo mantener una buena reputación
  6. ¿Dónde almacena sus datos?
  7. No registre ni solicite datos de identificación personal cuando no sea necesario
    1. No pida nombres completos...
    2. Anonimización de IP
    3. Desactivar el registro de IP en HAProxy
    4. Filtros en syslog
    5. Usar autenticación de dos factores
    6. Conclusión
Logo of the Government of the United KingdomThe UK Government chose Simple AnalyticsJoin them

Entremos en materia.

Servicios de terceros

La mayoría de las empresas utilizan muchos servicios de terceros. Le ayudan a ofrecer un mejor servicio a sus clientes, lo cual es estupendo. Pero es difícil saber hasta qué punto son respetuosos con la privacidad. Aunque puede que los conozca todos (así lo exige el GDPR), no sabe si puede confiar en ellos. Es saludable pensar siempre que los servicios de terceros no son de fiar y utilizarlos así en su producto. Hay algunas formas de limitar su efecto en tus visitantes.

Carga scripts de terceros sólo cuando sea necesario

De vez en cuando, necesitas utilizar scripts externos. Por ejemplo, podrías utilizar un servicio de chat o un proveedor de pagos. Solución: Cargue esos scripts sólo en las páginas en las que los utilice.

Para un chat, puede ser cargar cada página, pero para un proveedor de pagos, ciertamente no sería lo mismo. No incluya esos scripts en todas las páginas.

Cuando usas un chat que usas en cada página puedes ser un poco creativo. Por ejemplo, podría tener un pequeño botón que sólo cargue el script externo cuando haga clic en él.

Hay algunas maneras de lograr esto. Puedes hacerlo a través de servicios como Confirmic que ofrece una función de bloqueo de s cripts o hacerlo manualmente.

Vea estos ejemplos de cómo implementarlo:

Mostrar ejemplo de código de Confirmic

Mostrar ejemplo de código manual

Para comprobar si su sitio utiliza scripts de terceros, puede utilizar el generador de mapas de peticiones creado por Simon Hearne (gracias a Jan Klimo). Para Simple Analytics tiene este aspecto:

Third-party scripts of Simple Analytics

En el diagrama de arriba sólo se ven las peticiones que van a los servidores de Simple Analytics: simpleanalytics.com, simpleanalyticscdn.com, y simpleanalytics.io. El círculo rosa gordo es el vídeo de nuestra página de inicio, que consume la mayor cantidad de bytes. También utilizamos un proveedor de pagos externo, pero sólo cargamos el script cuando el cliente hace clic en el registro, de ahí que en esta imagen no se vea ningún script externo.

Compáralo con otro SaaS como Intercom:

Third-party scripts of Intercom

Hay muchos scripts externos cargados de todo tipo de dominios diferentes. No estoy diciendo que esto sea bueno o malo, pero es una buena práctica volver a comprobar si todas esas partes externas son necesarias. Ejecute el Generador de Mapas de Peticiones y vea qué servicios no necesita.

Recuerde que todas las partes externas pueden acceder a los datos que se muestran en la página. Si sus visitantes han iniciado sesión y ven datos críticos, estas partes externas también pueden verlos.

No dé demasiado poder a su proveedor de CDN

Si utiliza una CDN, les está dando datos sobre sus visitantes y el poder de cargar una secuencia de comandos diferente a la solicitada por sus visitantes.

Integridad de los recursos secundarios

Para evitar que su proveedor de CDN manipule la fuente de sus scripts, puede utilizar la Integridad de Subrecursos (SRI; el atributo de integridad en sus scripts). Necesita crear un hash de la fuente del script e incluirlo en la etiqueta del script a través del atributo integrity. Para generar el hash de integridad puedes utilizar srihash.org o report-uri.com.

<script src="https://cdn.example.com/script.js" integrity="sha384-..."></script>

Atributo de origen cruzado

El atributo de contenido crossorigin en elementos multimedia es un atributo de configuración CORS. Es necesario para cargar scripts de otros dominios (un dominio CDN, por ejemplo). La palabra clave anonymous significa que no habrá intercambio de credenciales de usuario a través de cookies y otros datos entre su sitio web y otros dominios.

Se especifica así

Atributo de política de referencia

Para evitar que sepan la página que están viendo tus visitantes, puedes añadir el atributo referrerpolicy con un valor no-referrer a tus etiquetas script.

Mostrar ejemplo de código

Aunque aquí no está enviando el referrer, el navegador sí envía la cabecera de origen con las peticiones CORS. Esto significa que su proveedor de CDN sigue obteniendo el dominio en el que aterrizan sus visitantes. Si registran las IP, pueden rastrear el comportamiento de navegación de sus visitantes. Esto sólo puede resolverse eligiendo un proveedor de CDN que anonimice las direcciones IP. El único proveedor de CDN que actualmente ofrece anonimización de IP es BunnyCDN (no estamos afiliados a BunnyCDN).

Si combina todas las características anteriores, el HTML tendrá un aspecto similar a este

Si añades scripts dinámicamente puedes especificar las características anteriores como propiedades. Las propiedades distinguen entre mayúsculas y minúsculas.

Tanto crossOrigin y referrerPolicy tienen una letra mayúscula en ellos

Política de seguridad de contenidos

Para añadir otra capa de seguridad al script que carga, puede utilizar una política de seguridad de contenidos (CSP). CSP es una capa adicional de seguridad que ayuda a detectar y mitigar ciertos tipos de ataques (incluyendo Cross Site Scripting (XSS) y ataques de inyección de datos).

Hay varias formas de crear una política: utilizar un servidor al que los navegadores informan automáticamente (o utilizar un servicio como report-uri.com o Csper que lo hacen por usted) o generar un informe usted mismo. Existen algunas herramientas que le ayudarán a crear un informe usted mismo: Report URI y cspisawesome.com tienen un asistente, 4ARMED y Csper tienen una extensión para el navegador, y Mozilla tiene una gran documentación.

Al crear tu política, puedes especificarla mediante una etiqueta &lt;meta&gt; o una cabecera.

¿Tiene miedo de bloquear activos importantes? Pruebe su CSP utilizando Content-Security-Policy-Report-Only para que sólo informe sin bloquear.

Elimine los widgets sociales

Las empresas de medios sociales tienen mala reputación por recopilar datos de sus visitantes. Hay muchos plugins y formas de rastrear a los usuarios. Sus visitantes no eligen ser rastreados por esas empresas, usted lo hace.

Si usted es un visitante se recomienda utilizar un bloqueador de anuncios como uBlock Origin. Es una extensión del navegador muy bien desarrollada que elimina todos los rastreadores y anuncios de tus visitas. Hay un botón gigante de encendido/apagado para desactivarlo para el sitio en el que estás. Hace que tu experiencia de navegación sea más segura.

Sus visitantes pueden hacer algo al respecto, pero siempre habrá gente que no sepa que existe este rastreo o que no sepa cómo evitarlo. Es por eso que la UE llegó con el GDPR, California con el CCPA, Brasil con LGDP y el Reino Unido con PECR.

Photo by Daria Nepriakhina on Unsplash

El 29 de julio de 2019, el Tribunal de Justicia de la Unión Europea (el "TJUE") dictaminó que una empresa que incrusta en su sitio web un plugin social, como un botón "Me gusta" de Facebook, puede considerarse un controlador de datos [...] - fieldfisher.com

Aunque usted no controle lo que esas plataformas detrás de sus widgets hacen con los datos de sus clientes, sigue siendo responsable de lo que ocurre con esos datos.

Sustituir el botón de compartir de Facebook

Cuando añades un widget de Facebook como un botón de compartir, Facebook te recomienda que utilices sus scripts. Esto es genial para ellos porque pueden recopilar más datos sobre tus visitantes. Por suerte, ofrecen otra forma sin el uso de sus scripts.

Aquí hay un ejemplo con botones personalizados y un simple enlace para compartir. Recomiendo encarecidamente el uso de la aplicación de enlace en lugar de cualquier aplicación de script.

sharing-on-social-media.png

Asegúrese de añadir rel="noopener" o rel="noreferrer" para evitar que otras páginas accedan a su objeto ventana con la propiedad window.opener. Esto puede permitir a la otra página redirigir tu página a una URL maliciosa. Se llama tabnabbing inverso. Edición: Los navegadores establecen implícitamente rel=noopener para cualquier enlace target=_blank desde 2021.

HTML para los botones de arriba

CSS para los botones anteriores

La implementación del enlace es un simple enlace que abre la página para compartir de Facebook para tus visitantes. Puedes colocar el enlace detrás de un botón o de un enlace de texto en tu sitio web.

Implementación del enlace explicada para personas sin conocimientos técnicos

Digamos que necesitas este enlace para Facebook:

Ves un montón de caracteres raros en esa URL (enlace). Eso es porque el enlace está codificado con URL. Utiliza urlencoder.io para codificar fácilmente la URL de tu sitio web:

Prefija la salida de urlencoder.io con https://www.facebook.com/sharer/sharer.php?u= y añade &src=sdkpreparse detrás y ya tienes tu enlace para compartir en Facebook. Sin el rastreo ni la recopilación de datos invasivos para la privacidad. Ahora puede compartir este enlace con sus desarrolladores o utilizarlo en el CMS de su sitio web de marketing.

Tweets incrustados en Twitter

En Internet se ve que el widget de Twitter se utiliza mucho. Pero, ¿es necesario enviar los datos de sus visitantes a Twitter cuando sólo quieren ver un tweet? Una captura de pantalla funciona bien:

Embedded tweet

No engañes a tus visitantes

Engañar a tus visitantes para que hagan algo que no quieren hacer es malo, y no deberías hacerlo. A veces es estupendo abrir tu sitio web y seguir tu flujo como un nuevo cliente. Ten cuidado con las cosas que no están claras y con todos los popups que veas.

Banners de cookies

Cuando navegues por Internet encontrarás muchos ejemplos de sitios web que intentan engañarte con un opt-in para permitir rastrearte.

Por ejemplo, la página de inicio del New York Times. Cuando ves una cruz (X) normalmente cierras un cuadro de diálogo sin aceptar lo que te piden. El New York Times lo ve igual que "Acepto":

New York Times cookie banner

Por favor, no lo hagas.

Correos electrónicos

Está relacionado con no engañar a tus visitantes, pero quiero dedicar una sección aparte sólo a los correos electrónicos.

Correos electrónicos de marketing

Si tienes un negocio, es muy valioso utilizar la dirección de correo electrónico de tus clientes. Utilízala sabiamente para informarles de novedades, ayudarles a desenvolverse en tu herramienta, etc. Es una ventaja para tu negocio. Pero si envías correos electrónicos de marketing a tus clientes, asegúrate de que quieren estar suscritos. Puedes preguntarles durante el registro si les parece bien que les envíes correos electrónicos sobre tu herramienta/servicio, o preguntarles si les parece bien que les envíes algunas guías de configuración o consejos. Ten en cuenta que si especificas cómo vas a utilizar su correo electrónico, asegúrate de que sólo lo utilizas para ese fin.

Seguimiento del correo electrónico

Es más difícil desactivar el seguimiento por correo electrónico que activarlo. Por eso la mayoría de los correos electrónicos de marketing contienen rastreadores. La tasa de apertura se considera inexacta porque el cliente deshabilita las imágenes:

[...] un correo electrónico sólo se cuenta como "abierto" si el destinatario también recibe las imágenes incrustadas en ese mensaje, y un gran porcentaje de sus usuarios de correo electrónico probablemente tengan activado el bloqueo de imágenes en su cliente de correo electrónico. [...] - blog.hubspot.com

Imágenes de correo electrónico

Cuando un mensaje de correo electrónico con muchas imágenes no se descarga completamente y el usuario lo visualiza, puede acabar mostrándose así para el suscriptor:

Tweet by Fabio Carneiro found on a blog by LitmusTweet de Fabio Carneiro

Cuando añades imágenes a tus correos electrónicos y no incrustas esas imágenes en los correos electrónicos pueden tener un aspecto muy feo. Cada vez más servicios de correo electrónico dejarán de mostrar los rastreadores de correo electrónico y, por tanto, también las imágenes. El nuevo servicio HEY. com bloquea los llamados píxeles de seguimiento. Supongo que le seguirán más.

Con Simple Analytics nos encanta compartir informes semanales y mensuales por correo electrónico. Cuando los clientes lo han activado, les enviamos un correo electrónico con todas las imágenes incrustadas. Sin rastreadores ni imágenes remotas. No hay necesidad de conectarse con nada fuera de su cliente de correo electrónico. Devuélvales su privacidad: ¡se lo merecen!

Email reports feature of Simple AnalyticsInformes por correo electrónico de Simple Analytics

Cómo mantener una buena reputación

Otro aspecto de los correos electrónicos de marketing es el encabezado de cancelación de suscripción. Asegúrese de tener el encabezado configurado ya que mejora la reputación de su correo electrónico. Las cabeceras podrían tener este aspecto

List-Unsubscribe: <https://example.com/unsub/?uuid=14b2-b2a1>, <mailto:unsubscribe@example.com>

En muchos clientes de correo electrónico, el enlace para darse de baja está situado cerca del botón de spam. Es mejor que la gente se dé de baja en lugar de pulsar el botón de spam para evitar dañar su reputación.

¿Dónde almacena sus datos?

Es importante almacenar sus datos en un país que proteja la privacidad de sus habitantes y de las personas fuera del país. Con Simple Analytics trasladamos nuestros servidores a Islandia cuando pensamos que era el mejor país desde el punto de vista de la privacidad. Según Freedom House Internet Freedom Scores Islandia sigue siendo la mejor opción:

Freedom House Internet Freedom ScoresLista de Freedom House Internet Freedom Scores o sólo Islandia.

Más tarde nos dimos cuenta de que Islandia no era la mejor opción en cuanto a proveedores.

He aquí por qué

<ol><li>La Iniciativa Islandesa de Medios de Comunicación Modernos fue aprobada por el Parlamento pero no se convirtió en ley (así que no es el paraíso de la libertad de Internet que pensábamos que era).</li><li>Nuestro proveedor decía ser el mayor de Islandia, pero no era tan maduro como los grandes de Europa, lo que ponía en riesgo la seguridad de nuestros servidores e infraestructura.</li><li>Este año han tenido dos caídas.</li><li>Los cables de Internet a Islandia son bastante lentos. Aunque geográficamente es ideal -situada entre Norteamérica y Europa-, en la práctica, Holanda es un lugar más rápido para ambos.</li><li>No queremos trasladarnos a Suiza porque sólo sería una medida de marketing. La UE ofrece mejores leyes de privacidad que Suiza.</li><li>De todas formas, tenemos que mudarnos porque nuestro proveedor actual no ofrece los servidores potentes que necesitamos.</li><li>El segundo mayor proveedor de Islandia tiene su sede legal en Hong Kong, que no es el lugar preferido para almacenar nuestros datos.</li></ol><blockquote>

Copiado de nuestra página de documentación sobre ubicaciones.

</blockquote>

Preguntamos a nuestros clientes si les parecería bien el traslado de Islandia a Holanda y todos los que votaron estuvieron de acuerdo con nuestra decisión.

Sé consciente de dónde guardas los datos de tus visitantes. Investigue un poco sobre el proveedor de alojamiento que utiliza y el país donde está alojado. No elija la opción más barata sin saber por qué es barata.

No registre ni solicite datos de identificación personal cuando no sea necesario

La información de identificación personal (IIP) es información que, utilizada sola o con otros datos relevantes, puede identificar a una persona. Todavía ocurre con bastante frecuencia que sitios web o aplicaciones te pidan datos personales que ni siquiera necesitan.

No pida nombres completos...

...a no ser que realmente lo necesites. Deja que la gente decida por sí misma si quiere añadir su nombre completo. Pide sólo el nombre de pila si quieres dirigirte a la gente en tus correos electrónicos de marketing, pero no pidas el nombre completo.

Para los lectores que estén cansados de inventar nombres falsos: existen muchos servicios que ayudan a crear nombres falsos.

Anonimización de IP

Esta parte es bastante técnica, así que ten paciencia. Si eres un gestor, reenvía esto a tus desarrolladores. La anonimización de IP es lo más lógico que se puede hacer en los servidores cuando se habla de privacidad. Sin embargo, no hay muchos ejemplos de cómo hacerlo. Muchos de los procesos (aplicaciones) en tus servidores registran datos. Por ejemplo, NGINX registra datos sobre cada solicitud que entra por defecto (es personalizable, sin embargo). Esto es muy bueno para la depuración, pero es menos bueno para la privacidad de sus usuarios. Con NGNIX no puede formatear los registros de error, por lo que siempre se producirá un error en el mismo formato. Esto es muy poco respetuoso con la privacidad porque contiene la dirección IP completa del usuario y normalmente el User-Agent (que puede contener identificadores poco claros cuando se usa la aplicación de Facebook).

Probablemente puedas adivinar algunos de los elementos de este sufijo de User-Agent de Facebook, pero para mí no está del todo claro: [FBAN/FBIOS;FBAV/221.0.0.0.0;FBBV/154514034;FBDV/iPhone9,4;FBMD/iPhone;FBSN/iOS;FBSV/12.3.0;FBSS/3;FBCR/Siminn;FBID/phone;FBLC/en_GB;FBOP/5;FBRV/155138002]. No parece que estén rastreando a sus usuarios a través del sufijo User-Agent, pero al menos manipulan el User-Agent.

Desactivar el registro de IP en HAProxy

Para crear su propio registro tanto para los mensajes de error como para los normales, puede personalizar su formato de registro. Está mejor explicado en el blog haproxy.com. Vea nuestro ejemplo de código para ver cómo registramos:

Config para desactivar el registro de IP en HAProxy

Un ejemplo de salida:

Filtros en syslog

Simple Analytics utiliza NGINX, que en nuestro caso registra en rsyslog, a menudo denominado syslog. rsyslog suele estar incluido en las distribuciones de Linux(sitio web oficial). Afortunadamente rsyslog viene con un gran módulo que se llama mmanon. Este módulo se puede utilizar para filtrar direcciones IP tanto para v4 como para v6 de la versión 7.3.7 de rsyslog.

Cómo implementar la anonimización con rsyslog

En tu servidor puedes comprobar qué versión de <em>rsyslog</em> tienes ejecutando rsyslogd -v.

Puedes activar la anonimización de IP añadiendo las siguientes líneas al fichero de configuración de <em>rsyslog</em>. El fichero de configuración suele estar en /etc/rsyslog.conf o /etc/rsyslog.d/50-default.conf.

Después de cambiar este archivo asegúrese de reiniciar <em>rsyslog</em> con service rsyslog restart.

<h4>Siguiente nivel de syslog</h4>

Si quieres profundizar, puedes configurar algunos filtros avanzados para eliminar datos sensibles de tus archivos de registro o servicios de registro.

Puedes crear un archivo de configuración syslog en /etc/syslog/.... He creado un fichero llamado /etc/rsyslog.d/30-anonymize.conf que contiene:

Puedes hacer mucho más, en nuestra configuración ocultamos IPs, tarjetas de crédito y agentes de usuario.

Usar autenticación de dos factores

Esto está más relacionado con la seguridad que con la privacidad, pero es importante en cualquier caso.

Si quieres asegurar los datos de tus usuarios y evitar que otros accedan a sus datos, utiliza un sistema de autenticación de dos factores. No utilices SMS. Utiliza TOTP (Time-based One-time Password), que tiene montones de aplicaciones e integraciones. No requiere conectividad a Internet y puede instalarse en múltiples dispositivos.

Conclusión

Mientras trabajaba en Simple Analytics, luchaba constantemente contra el status quo buscando formas de tratar los datos de los visitantes que respetaran la privacidad. Hay muy pocas directrices sobre cómo evitar el rastreo en tu propio negocio.

Lee el debate en Hacker News

Espero que este post haga que la web sea un poco más respetuosa con la privacidad. Por favor, dime qué consejos debería añadir.

GA4 es complejo. Prueba Simple Analytics

GA4 es como estar sentado en la cabina de un avión sin licencia de piloto

Empezar gratis ahora