Devido aos regulamentos europeus de privacidade, é melhor evitar solicitações para domínios de terceiros iniciadas por um site que você hospeda. É difícil alcançar a conformidade com o Discourse, pois o recurso Onebox faz com que o navegador busque a miniatura do site original, tornando-a uma solicitação de terceiros. Veja o artigo com onebox abaixo:
Você pode ver nas ferramentas de desenvolvedor que a imagem é baixada de um site de terceiros. Como o artigo também aponta, é um problema de GDPR, mesmo que a solicitação não tenha cookies.
Atualmente, desativei o onebox para minha instância do Discourse, mas adoraria reintroduzi-lo de uma maneira que respeite mais estritamente a privacidade e não abra uma maneira de receber uma multa.
As imagens poderiam ser servidas de um domínio principal ou de um domínio personalizado como cdn.mydomain.com.
Você não pode salvar imagens de terceiros em sua própria configuração por causa de direitos autorais, o que é muito difícil com imagens (e isso torna um recurso do Discourse questionável, mas essa é outra história). Mas o oneboxing não é contra o GDPR e nunca foi. Para garantir, é uma boa ideia informar que há um terceiro envolvido através de links e que seguir o GDPR é responsabilidade deles. Mas você também não precisa disso.
O oneboxing em si não é, mas servir recursos de terceiros claramente é, veja o caso do Google Fonts acima
Talvez pudéssemos, em vez disso, proxy-las através do servidor Discourse, para que terceiros vissem apenas o IP do servidor Discourse, não o do usuário?
Huh, isso é interessante! É algum tipo de plugin ou uma configuração que eu poderia habilitar na minha instância?
O Oneboxing não está servindo a serviços de terceiros. E o GDPR permite o uso de Google Fonts, ele deve informar aos usuários — e o Google também está seguindo o GDPR.
Mas isso não é uma questão de GDPR. Os iframes são.
Não se trata tanto de “informar” os usuários, mas sim de ter uma base legal, como Consentimento ou Interesse Legítimo. Com o consentimento, você tem que ter uma maneira conveniente de recusar o consentimento e, em seguida, o recurso não é carregado. Com um Interesse Legítimo, você tem que conduzir uma Avaliação de Razão Legítima, e eu (e posso imaginar muitos outros administradores de hospedagem do Discourse) preferiria não fazer isso e, em vez disso, desabilitar o oneboxing completamente, ou ocultar o IP do usuário atrás de um proxy.
É exatamente sobre isso que se trata. Você precisa de consentimento ao coletar, usar e armazenar dados pessoais de um usuário. E mesmo assim você deve dizer o que faz, por que faz e por quanto tempo faz.
O Oneboxing não faz parte disso, mas você deve informar se há terceiros envolvidos. E os oneboxes são apenas links sofisticados.
O que eu quis dizer é: divulgar o fato de que há solicitações de terceiros não é suficiente. Sob o GDPR, você tem que fornecer:
o propósito de tal processamento de dados
a base legal de tal processamento
Não podemos usar o consentimento, porque o Discourse não permite exibir imagens externas em onebox apenas para usuários que deram consentimento para isso. E o Interesse Legítimo ainda requer o envolvimento de um advogado no processo para conduzir adequadamente o teste de equilíbrio. Seria muito mais fácil se não tivéssemos que fazer isso porque o software não faria o navegador enviar solicitações a terceiros (que nem sequer podemos listar em uma política de privacidade, ou apontar para as políticas de privacidade desses terceiros, porque pode ser literalmente qualquer pessoa na Internet)
Como visto pelo GDPR, eles não são apenas links, porque são visitados pelo navegador sem a ação do usuário.
(Aliás, não estou inventando isso, trabalho com conformidade do GDPR em minha vida profissional e tenho experiência prática com como as reclamações e multas funcionam na UE)
Discussões legais à parte, existem usuários que bloqueiam recursos de terceiros especificamente para não revelar seu IP e hábitos de navegação a terceiros. Seria bom se os oneboxes funcionassem para eles
Considerações legais à parte, acho que seria útil fazer algo nessa área.
No entanto, tendo a dizer que a solução é, na verdade, pedir ao usuário uma opção específica para exibir mídia externa. Vários sites alemães que visito adotaram a prática de pedir especificamente aos usuários por isso (exemplo abaixo).
Acho que, além disso, ter pré-visualizações de imagens estáticas servidas diretamente do host do Discourse seria bom, mas tendo a dizer que a opção real é o passo mais importante.
Exemplo (Golem.de, site de notícias de TI alemão):
Estou curioso sobre isso. Posso entender o problema do Google Font, pois ele requer o download da fonte do servidor do Google para cada usuário.
No entanto, na minha experiência com um “Onebox”, a pré-visualização do link permanece estática, a menos que você reconstrua o HTML. O que quero dizer com isso. É que, na minha experiência, o onebox permanece com as mesmas informações de pré-visualização, mesmo que a fonte altere as informações na página.
Isso tem sido útil quando um site mudou drasticamente as informações da página. Minha pré-visualização de informações do onebox permaneceu inalterada sem reconstruir a postagem através da chave inglesa.
Tive alguns oneboxes antigos que permaneceram intactos, mesmo que o site original vinculado não contivesse mais o conteúdo vinculado.
Os iframes, por outro lado, acredito que atualizam da maneira que você identificou, como @Jagster menciona, sendo mais uma pré-visualização ao vivo ao visualizar por usuário, como acontece com o download de fontes do Google.
Pelo menos com o meu entendimento. Imagino que você também precisaria desativar os embeds, certo?
Imagino que um plugin possa ser criado para adicionar um recurso como o abaixo.
Posso ver por que meu amigo alemão aqui no Canadá diz que é melhor bloquear a UE.
Como dito por @Firepup650 acima, este não é o caso, pois o Discourse baixa e serve automaticamente imagens Oneboxed, o que é até uma configuração padrão.
Você pode até tornar isso mais rigoroso ativando block hotlinked media.
O problema foi do Google, que não seguiu o GDPR. Essa foi uma parte do caso pelo qual o Google recebeu uma multa bem alta da UE. Mas nunca foi um problema daqueles sites que usavam a Fonte do Google, AdSense etc. É por isso que o Google estava no julgamento, não aqueles que ofereciam esses serviços.
Eu entendo a frustração - muitas coisas que a UE faz são bem-intencionadas, mas não necessariamente bem implementadas e muitas vezes complicam as coisas para os desenvolvedores.
Neste caso específico, eu gosto do que as pessoas implementaram, porque dá uma escolha simples, mas significativa ao usuário.
Se isso pode ser feito em um plugin, melhor ainda. Eu presumi que precisaria ser feito no núcleo porque ele é executado em todos os oneboxes.
Razões ou razões imaginárias começam a fugir do tópico. Mas esses regulamentos são coisas que são pontos problemáticos nos EUA. E esses regulamentos são necessários porque as gigantes americanas não respeitaram a privacidade dos usuários, porque não há regulamentação nos EUA. Ou devo dizer agora… porque a vida dos desenvolvedores não é tão complicada
Então, não agradeça à UE. Envie cartões de agradecimento para Google, Amazon, Microsoft, X, Apple, etc. E, ao mesmo tempo, você pode pensar sobre o que é comum entre eles.
Aliás, recebi uma mensagem de que não deveria deixar ninguém com menos de 13 anos entrar no meu fórum. Com certeza os deixarei entrar, mesmo da Califórnia, se eles souberem ler finlandês
Desligando (por que não existe emoji de microfone caindo…)
Não estou discutindo a necessidade de regulamentação - tudo o que estou dizendo é que o passo de “nós e nossos 999 parceiros confiáveis roubaremos seus dados” para um grande pop-up que diz “clique aqui para concordar que nós e nossos 999 parceiros confiáveis roubaremos seus dados” às vezes parece uma vitória de Pirro, e posso entender como isso faz algumas pessoas coçarem a cabeça
Mas voltando ao tópico principal: @kuba-orlik, se isso funcionar para você, então eu sugiro reformular o pedido de recurso para “Fornecer opção para exigir o consentimento do usuário antes de exibir mídia externa” (eu votaria nele, então).
Se você sentir que o título atual se adequa melhor ao seu pedido, também está tudo bem. Nesse caso, eu provavelmente abriria outro.
Bem, isso chega a extremos insanos. A menos que tenha mudado ou sido distorcido, lembro-me de ter lido que uma empresa pode ter que honrar uma garantia em, digamos, hardware onde o usuário final o danificou desmontando-o e tentando um conserto.
A questão maior é que isso foi levado ao extremo para proteger as pessoas de pura estupidez.
Pelo que entendi, um plugin poderia realmente realizar isso, pois modifica elementos do núcleo no lado do servidor, em vez de um componente de tema que modifica coisas no lado do cliente/navegador; scripts Tampermonkey são meio como temas/componentes instalados no lado do navegador. Eu costumava usar um script Tampermonkey em um antigo jogo de navegador chamado Fallen Sword para modificar a forma como ele ordena itens no mercado.
Nota lateral interessante: não recebi notificações para este tópico.