Exclusión de la red FLoC

Google ha inventado una tecnología llamada FLoC que utiliza el navegador Chrome para perfilar a los usuarios, ya que las cookies de terceros parecen estar desapareciendo.

Esta tecnología es muy mal vista y un sitio web o aplicación puede enviar una cabecera Permissions-Policy: interest-cohort=() para optar por no participar en ella.

Creemos que la publicidad es un pilar fundamental de la web en 2021, pero, por supuesto, hay muchas comunidades que lo ven como un gran problema de privacidad.

La forma más rápida de excluir tu instalación de Discourse de esto es agregar una etiqueta meta en la sección /head de un componente de tema: EDITO: como señaló @supermathie, no estoy seguro de si esto funcionará.

<meta http-equiv="Permissions-Policy" content="interest-cohort=()"/>

Pero quizás esto podría ser una cabecera HTTP «real» controlada por una casilla de verificación en el núcleo.

20 Me gusta

Gracias, coincido contigo; esto debería ser una opción estándar.

Puedes verificar tus encabezados aquí, y este sitio actualmente no envía una opción de exclusión:
https://securityheaders.com/?q=https%3A%2F%2Fmeta.discourse.org%2F\u0026followRedirects=on

3 Me gusta

Solo he visto a personas decir que esto no funcionará; creo que debe ser una cabecera real.

5 Me gusta

Desactivar la función tanto desde el sitio web como desde el lado del usuario no es un esquema viable para introducir nuevas características en la plataforma web.

En particular, la cabecera debe enviarse en cada solicitud, y también es necesario tener en cuenta cada URL única de CDN que equivaldría a una visita a tu dominio principal del foro.

cdn.forum.example.com tiene exactamente tanto poder predictivo como forum.example.com.

Cualquier cambio en este punto está esencialmente motivado de forma aleatoria. Que Google obligue a toda la web a reorganizarse con pocas oportunidades para investigar el mecanismo o para tener visibilidad de los cambios en la política no favorece la toma de decisiones racionales.

8 Me gusta

Muy cierto. No podría estar más de acuerdo.

Y sin embargo…

¿Se supone que debemos quedarnos de brazos cruzados y no hacer nada mientras Google hace eso? Porque Google lo está haciendo, queramos o no. Ya sea que sea bueno o no.

FLoC Discusión en el proyecto de WordPress (que, lamentablemente, parece girar más en torno al «cómo» en lugar del «si»).

Gracias, hice algunas búsquedas: discusión relevante aquí y un argumento importante (énfasis mío)

Preferiría que no hiciéramos esto. Esto genera todo tipo de condiciones de carrera y también obtendrás funciones que solo podrás desactivar a nivel HTTP. Prefiero no repetir el caos que esto creó con CSP. Simplemente animemos a todos los proveedores de alojamiento a ofrecer opciones de configuración de encabezados adecuadas.

Aunque FLoC es terrible, la sugerencia en WordPress tampoco parece perfecta, ya que muchas cosas modifican las cabeceras. ¿Cómo se tiene en cuenta todo eso?

La única solución fiable en este momento es utilizar cualquier navegador que no sea Chrome. El uso de directivas para pedirle a Google que no rastree ni realice seguimiento tiene un historial de no ser siempre respetado, incluso cuando se hace de la manera que Google indica que debemos hacerlo.

15 Me gusta

Así que, en el mundo de WordPress, un administrador de sitios web debe lidiar con su proveedor de alojamiento para configurar sus encabezados. (Edición: ups, vea más abajo la corrección.)

Pero aquí, en el mundo de Discourse, tenemos una imagen de Docker que configura todo sobre la presencia web de nuestro sitio, incluidos los encabezados.

Solo sé lo suficiente como para ser peligroso, pero veo configuraciones de encabezado en:
/var/discourse/shared/standalone/letsencrypt/http.header
/var/discourse/templates/web.ssl.template.yml
por lo que me parece que está dentro del alcance de Discourse establecer los encabezados apropiados, de acuerdo con la política del administrador del sitio.

Algunos administradores de Discourse podrían no querer hacer nada, otros podrían querer esperar y ver, y otros podrían preferir optar por no participar en el seguimiento de FLoC en nombre de sus comunidades y como una señal para Google.

Yo me gustaría optar por no participar.

1 me gusta

Estoy probando un cambio basado en Add a custom HTTP header to requests made to your Discourse [1] para añadir esta cabecera; te avisaré en cuanto tenga la verificación de que funciona.

Personalmente, me gusta la sugerencia que hizo alguien de rechazar directamente las solicitudes que envíen la cabecera FLOC, rompiendo Chrome. Pero no consigo encontrar el artículo que leí que abogaba por eso… :smiley:


  1. GNU Terry Pratchett, di su nombre ↩︎

7 Me gusta

No, esa cita provenía de una discusión general sobre el encabezado Permissions-Policy. En el mundo de WordPress, existe un plugin que añade dicho encabezado.

1 me gusta

Gracias, me corrijo.

Esto debería servirte:

## Cualquier comando personalizado para ejecutar después de la compilación
run:
  - exec: echo "Inicio de comandos personalizados"
  - replace:
     filename: "/etc/nginx/conf.d/discourse.conf"
     from: /location \\/ {/
     to: |
       location / {
           add_header X-Clacks-Overhead "GNU Terry Pratchett";
           add_header Permissions-Policy "interest-cohort=()";

adaptado de Add a custom HTTP header to requests made to your Discourse
nota al margen: qué tema tan actual para hoy: Terry Pratchett’s debut turns 50: ‘At 17 he showed promise of a brilliant mind’ | Books | The Guardian

el resultado es:

○ → curl -I https://testmachine/srv/status
HTTP/2 200 
server: nginx
date: Tue, 20 Apr 2021 17:48:15 GMT
content-type: text/plain; charset=utf-8
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
x-download-options: noopen
x-permitted-cross-domain-policies: none
referrer-policy: strict-origin-when-cross-origin
x-request-id: ef02ce7c-fabc-49b9-986e-c2c46e50f8e4
x-runtime: 0.004575
x-redis-calls: 1
x-redis-time: 0.000153
x-queue-time: 0.000952
x-clacks-overhead: GNU Terry Pratchett
permissions-policy: interest-cohort=()
7 Me gusta

Actualización de lobste.rs: Una vez finalizada la versión beta, no habrá opción para excluirse de que tu sitio se incluya en los cálculos.

Todos los sitios con direcciones IP enrutables públicamente que el usuario visite cuando no esté en modo incógnito se incluirán en el cálculo de la cohorte del POC.

Esta «opción de exclusión» dejará de funcionar tan pronto como finalice la fase de prueba y, actualmente, solo funciona si estás sirviendo anuncios.

3 Me gusta

En otras palabras, dejemos de perder el tiempo pensando en esto.

Puedes optar por no participar como individuo (por ahora).

A partir de Chrome 90 (versión estable lanzada el martes 13 de abril), los usuarios podrán optar por no participar en FLoC y otras propuestas de Privacy Sandbox a través de chrome://settings/privacySandbox. (Ya puedes probarlo ahora en Canary con la demostración de floc.glitch.me.)

De: https://discourse.wicg.io/t/proposal-federated-learning-of-cohorts-floc/4473/26

3 Me gusta

Esto también me tomó un tiempo entenderlo, y creo que ahora lo comprendo (pero por favor corrígeme si me equivoco). La confusión gira en torno a “los cálculos”.

Hay dos tipos de cálculos aquí, y existen tres formas en que un sitio puede “participar” en FLoC.

  1. El algoritmo “global” que determina las cohortes (globales). No es posible darse de baja. De hecho Todos los sitios con direcciones IP accesibles públicamente que el usuario visite cuando no esté en modo incógnito se incluirán en el cálculo de la cohorte del POC.

  2. El algoritmo que determina la cohorte para un usuario específico, basándose en sus hábitos de navegación. La exclusión se basa en una cabecera. Un sitio debería poder declarar que no desea ser incluido en la lista de sitios del usuario para el cálculo de la cohorte. Esto puede lograrse mediante una nueva política de permisos interest-cohort permissions policy. (tomado del mismo documento que tu cita)

  1. Un sitio que solicita la cohorte específica del usuario para obtener un anuncio dirigido (o para malutilizar esa información) usando JavaScript. El valor está disponible para los sitios web a través de una nueva API de JavaScript:
    cohort = await document.interestCohort();
    .
    Esa API no funciona en páginas que se dieron de baja mediante la cabecera mencionada en el punto #2, y es de ahí donde surgió gran parte de la confusión. Cualquier frame al que no se le permita el permiso interest-cohort recibirá un valor predeterminado cuando llamen a document.interestCohort().

No puedo encontrar una buena fuente para esto.

3 Me gusta

Ah, es que estaba mezclando el punto #2 y el #3 de tu lista.

En ese caso, el encabezado tiene cierto valor, aunque, de nuevo, los encabezados son un método deficiente y propenso a errores para entregar esto.

2 Me gusta