Discourse Fingerprint 
Discourse Fingerprint é uma ferramenta para gestores de comunidades no combate a trolls da internet.
Ele funciona calculando um identificador único (uma impressão digital) para cada usuário registrado, considerando mais de 20 características do navegador, como user agent, resolução da tela, fuso horário, memória do dispositivo, etc.
Quando cada uma dessas características do navegador é considerada separadamente, elas não são suficientes para determinar se dois usuários são a mesma pessoa. Existe um número relativamente pequeno de user agents, resoluções de tela, etc. No entanto, ao levar em conta todos esses 20 fatores, há uma chance muito pequena de que dois usuários tenham a mesma chave.
Hora da matemática: Supondo que existam apenas 20 características do navegador e apenas 4 valores possíveis para cada uma delas (nota: existem mais de 20 características de navegador com muito mais de 4 valores), isso significa que há 4\u003csup\u003e20\u003c/sup\u003e combinações (impressões digitais). Isso dá 1.099.511.627.776 combinações… e há apenas 7.640.175.882 pessoas na Terra. Bem, algumas características do navegador podem ser inúteis (por exemplo, o fuso horário será o mesmo para todos os usuários de um fórum de comunidade local)… mas é provável que os fóruns também não tenham 7,6 bilhões de usuários. ![]()
Como funciona?
Quando um usuário navega em um fórum, ele é identificado digitalmente e o resultado é armazenado junto com as últimas impressões digitais (por padrão, as 10 mais recentes). Em seguida, os administradores podem usar uma interface simples para verificar as correspondências de impressões digitais mais recentes (conflitos) e verificar se um usuário está em conflito com outra pessoa.
O plugin não tem absolutamente nenhum impacto nos usuários e gera a impressão digital do usuário 3 segundos após o carregamento inicial da página.
Como é a aparência?
Vamos considerar um pequeno cenário de teste:
- Os usuários Dan, Oliver e Jack usaram algum dispositivo (sessões anônimas e regulares).
- Os usuários Harry, Jacob e William usaram um dispositivo diferente (também sessões anônimas e regulares).
- Em algum momento, o usuário William fez login usando exatamente a mesma máquina e navegador que Oliver.
O painel mostrará que há dois conflitos. Um é entre Dan, Oliver, Jack e William, e o outro envolve Harry, Jacob e William. Note que a relação de conflito não é transitiva (ou seja, Dan está em conflito com William, Harry também está em conflito com William, mas Dan não está em conflito com Harry).
Uma visão detalhada de Dan nos dirá quais são suas impressões digitais, quando foram vistas pela primeira e última vez e com quem ele está em conflito por aquela assinatura.
Uma visão detalhada de William nos dará informações semelhantes, mas desta vez mostrando duas impressões digitais.
Um administrador pode optar por agir sobre isso ou clicar no botão “ignorar” para ocultar esse conflito. Note que, mesmo que você ignore um conflito, ele ainda aparecerá em “Conflitos mais recentes” até que novos conflitos surjam.
Como instalá-lo?
Siga Instalar um Plugin, usando git clone https://github.com/discourse/discourse-fingerprint.git como comando do plugin.
Basicamente, edite seu arquivo app.yml para incluir o comando especificado anteriormente.



