FLoC rede de exclusão

O Google inventou uma tecnologia chamada FLoC que usa o navegador Chrome para criar perfis de usuários, pois os cookies de terceiros parecem estar desaparecendo.

Essa tecnologia é altamente desaprovada, e um site ou aplicativo pode enviar um cabeçalho Permissions-Policy: interest-cohort=() para optar por não participar.

Acreditamos que a publicidade é um pilar importante da web em 2021, mas, claro, muitas comunidades veem isso como uma grande questão de privacidade.

A maneira mais rápida de excluir sua instalação do Discourse dessa tecnologia é adicionar uma tag meta no /head de um componente de tema: EDITADO: como @supermathie apontou, não tenho certeza se isso funcionará.

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

Mas talvez isso pudesse ser um cabeçalho HTTP “real” controlado por uma caixa de seleção no núcleo.

20 curtidas

Obrigado — concordo, isso deveria ser uma opção padrão.

Você pode verificar seus cabeçalhos aqui, e este site atualmente não envia uma opção de recusa:
https://securityheaders.com/?q=https%3A%2F%2Fmeta.discourse.org%2F&followRedirects=on

3 curtidas

Eu só vi pessoas dizendo que isso não funcionará; acredito que isso precisa ser um cabeçalho real.

5 curtidas

Desativar a opção tanto no lado do site quanto no do usuário não é um esquema viável para introduzir novos recursos de plataforma web.

Em particular, o cabeçalho precisa ser enviado em toda solicitação, e você também precisa considerar cada URL única de CDN que seria equivalente a uma visita ao seu domínio principal do fórum.

cdn.forum.example.com tem exatamente o mesmo poder preditivo que forum.example.com.

Qualquer mudança neste momento é essencialmente motivada aleatoriamente. O Google forçar toda a web a se desdobrar, com pouca oportunidade para pesquisar o mecanismo ou ter visibilidade sobre mudanças na política, não é propício para decisões racionais.

8 curtidas

Muito verdade. Não poderia concordar mais.

E, no entanto…

Devemos ficar apenas sentados, sem fazer nada, enquanto o Google faz isso? Porque o Google está fazendo isso, gostemos ou não. Seja bom ou não.

Discussão sobre o FLoC Discussion no projeto WordPress (que, infelizmente, parece girar mais em torno de ‘como’ em vez de ‘se’).

Obrigado, fiz algumas pesquisas: discussão relevante aqui e argumento importante (ênfase minha)

Preferiria que não fizéssemos isso. Isso leva a todos os tipos de condições de corrida e você também obterá recursos que só podem ser desativados no nível HTTP. Preferiria não repetir a bagunça que isso criou com a CSP. Vamos apenas incentivar todos os provedores de hospedagem a oferecer opções adequadas de configuração de cabeçalho.

Embora o FLoC seja terrível, a sugestão do WordPress também não parece perfeita, já que muitas coisas modificam os cabeçalhos. Como você leva tudo isso em conta?

A única solução confiável no momento é usar qualquer navegador além do Chrome. O uso de diretivas para pedir ao Google que não rastreie ou colete dados tem um histórico de não ser sempre respeitado, mesmo quando feito da maneira que o Google indica que devemos fazer.

15 curtidas

Então, no mundo do WordPress, um webmaster precisa lidar com seu provedor de hospedagem para configurar os cabeçalhos. (Edição: ops, veja abaixo a correção.)

Mas aqui no mundo do Discourse, temos uma imagem Docker que configura tudo sobre a presença web do nosso site, incluindo cabeçalhos.

Sei apenas o suficiente para ser perigoso, mas vejo configurações de cabeçalho em
/var/discourse/shared/standalone/letsencrypt/http.header
/var/discourse/templates/web.ssl.template.yml
então, para mim, parece estar dentro do escopo do Discourse definir cabeçalhos apropriados, de acordo com a política do webmaster.

Alguns administradores do Discourse podem não se importar em fazer nada, alguns podem querer esperar e ver, e outros podem gostar de optar por não participar do rastreamento FLoC em nome de suas comunidades e como um sinal para o Google.

Eu gostaria de optar por não participar.

1 curtida

Estou testando uma alteração com base em Add a custom HTTP header to requests made to your Discourse [1] para adicionar este cabeçalho. Avisarei assim que tiver a confirmação de que funciona.

Pessoalmente, sou fã da sugestão que alguém fez de rejeitar diretamente solicitações que enviam o cabeçalho FLOC, quebrando o Chrome. Mas não consigo encontrar o artigo que li defendendo isso… :smiley:


  1. GNU Terry Pratchett, fale seu nome ↩︎

7 curtidas

Não — essa citação era de uma discussão genérica sobre o cabeçalho Permissions-Policy. No mundo do WordPress, há um plugin que adiciona o cabeçalho.

1 curtida

Obrigado — eu me corrijo.

Isso deve resolver:

## Quaisquer comandos personalizados para executar após a compilação
run:
  - exec: echo "Início dos 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
observação: como é bem oportuno para hoje: Terry Pratchett’s debut turns 50: ‘At 17 he showed promise of a brilliant mind’ | Books | The Guardian

o resultado é:

○ → 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 curtidas

Atualização do lobste.rs: Uma vez que o beta for concluído, não haverá opção de excluir seu site dos cálculos.

Todos os sites com endereços IP roteáveis publicamente que o usuário visita fora do modo anônimo serão incluídos no cálculo de coorte do POC.

Essa “exclusão” deixará de funcionar assim que a fase experimental for concluída e, atualmente, só funciona se você estiver exibindo anúncios.

3 curtidas

Em outras palavras, vamos parar de perder tempo pensando nisso.

Você pode optar por não participar individualmente (por enquanto).

A partir do Chrome 90 (versão estável lançada na terça-feira, 13 de abril), os usuários podem optar por não participar do FLoC e de outras propostas do Privacy Sandbox em chrome://settings/privacySandbox. (Você pode testar isso agora no Canary com a demonstração em floc.glitch.me.)

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

3 curtidas

Isso também me levou algum tempo para entender, e acho que agora compreendo (mas por favor, corrija-me se eu estiver errado). A confusão gira em torno de “os cálculos”.

Existem dois tipos de cálculos aqui, e há três maneiras de um site “participar” do FLoC.

  1. O algoritmo “global” que determina as (globais) coortes. Desistência impossível. De fato Todos os sites com endereços IP publicamente roteáveis que o usuário visita quando não está no modo anônimo serão incluídos no cálculo da coorte POC.

  2. O algoritmo que determina a coorte para um usuário específico, com base nos hábitos de navegação dele. Desistência baseada em cabeçalho. Um site deve poder declarar que não deseja ser incluído na lista de sites do usuário para o cálculo da coorte. Isso pode ser realizado por meio de uma nova política de permissões interest-cohort permissions policy. (extraído do mesmo documento que sua citação)

  1. Um site solicitando a coorte específica do usuário para obter um anúncio direcionado (ou para usar indevidamente essas informações) usando JavaScript. O valor é disponibilizado para sites por meio de uma nova API JavaScript:
    cohort = await document.interestCohort();
    .
    Essa API não funciona em páginas que optaram por sair usando o cabeçalho mencionado no item #2, e é aí que surge muita confusão. Qualquer frame que não tenha permissão interest-cohort receberá um valor padrão ao chamar document.interestCohort().

Não consigo encontrar uma boa fonte para isso.

3 curtidas

Ah - eu estava confundindo o #2 e o #3 na sua lista ali.

Nesse caso, há valor no cabeçalho, embora, novamente, cabeçalhos sejam um método ruim e propenso a erros para entregar isso.

2 curtidas