O conteúdo muda com frequência, assim como os endereços de e-mail e IPs, então o bloqueio reduz a quantidade, mas ainda não encontramos uma solução real. Por motivos de privacidade, não queremos enviar tudo para Akisment.
Você já tentou adicionar certas palavras em Admin → Personalizar → Palavras Monitoradas → Exigir Aprovação?
Pela sua captura de tela, eu tentaria adicionar estas palavras:
dinheiro
crédito
dinheiro
empréstimo
ligação gratuita
atendimento ao cliente
número de atendimento
0779*
linha de apoio
:point_left:
Pode ser um pouco inconveniente para os usuários, mas eu faço o Discourse enviar um webhook para uma função do Firebase Cloud (gratuita) que notifica meu telefone em uma sala de chat do Slack, então eu geralmente posso aprovar postagens em moderação em 60 segundos do meu telefone, se eu estiver acordado.
Obrigado pela dica, mas por favor, verifique https://ask.learncbse.in/ (não é minha instância, mas as postagens são mais ou menos as mesmas contra as quais estou lutando) e navegue pelos últimos dias, eles estão usando uma tonelada de combinações e variações de cada palavra-chave. Estou no processo de criar um monte de regex para cada palavra-chave porque eles estão adicionando em todos os lugares um “.”, uma “,”, um “|”, substituindo um “0” por um “O”, um “e” por um “3”, adicionando no meio da palavra um (até agora) caractere aleatório etc etc … é realmente difícil lutar contra esse tipo de spam.
Ou, se você não quiser clicar em um link aleatório, aqui está uma captura de tela das últimas horas, mas estas são apenas as últimas horas, elas variam muito ao longo do tempo:
Só para verificar, você usa a configuração de administrador tempo mínimo de digitação da primeira postagem? Acho que é bastante útil para capturar muitos dos nossos.
Obrigado pela dica, mas configurar um LLM apenas para combater outro LLM de spam em nosso discurso é muito caro para nosso caso de uso.
Como um spammer, você pode facilmente aumentar o custo para a organização apenas criando mais usuários/posts, então, dependendo do que você quer arquivar, isso também pode ser uma motivação para criar ainda mais posts
Talvez exigir que a primeira postagem de cada usuário seja aprovada ajudaria um pouco aqui? Dessa forma, pelo menos eles nunca chegariam ao fórum publicamente e, desde que você não tenha muitos usuários reais se inscrevendo diariamente, acho que ajudaria pelo menos um pouco.
Nós pensamos nisso, mas temos um produto de privacidade e segurança, o que significa que precisamos proteger nossos usuários o máximo possível. O conteúdo é público, com certeza, mas não o endereço IP/Agente/Referenciador/E-mail, se entendi corretamente Discourse Akismet, ele é transmitido para o Akismet (com certeza também leria a política de privacidade, mas a visão geral já é informação suficiente para a decisão).
Essa seria uma ideia. Com cerca de 2 cadastros por dia, não deve ser muito incômodo, mas não é a melhor experiência ter que esperar por uma aprovação, mas se explicarmos corretamente, pode ser a melhor opção que temos por enquanto.
Sim, você está infelizmente correto - eles transmitem alguns dados adicionais para o Akismet que podem não estar alinhados com sua política de privacidade. Nesse caso, a sugestão do @Firepup650 é a melhor que existe.
FYI meu Geo Blocking plugin pode negar o acesso ao Discourse com base na rede AS de origem. De fato, muito desse tipo de spam parece originar-se dessas redes, especialmente da AS45609.
Se você não quiser bloquear metade da Índia, pode valer a pena investigar o quão difícil seria reutilizar parte da funcionalidade desse plugin para adicionar regras de rede ou IP à lógica de aprovação (“exigir aprovação para novas postagens de redes”).
Percorri muitas páginas naquele site de exemplo e acho que pode ser possível bloquear quase todos eles com o recurso de palavras observadas, se a regex do Discourse puder funcionar em intervalos Unicode.
Usuários regulares provavelmente não usam coisas como:
2 ou mais barras seguidas
pontuação incomum como ^ (a menos que seja um site de matemática)
intervalos Unicode incomuns:
✓ (Símbolos Diversos)
∆ (Grego e Copta)
❽, ➁, ❸, 3, ❷ (Dingbats)
𝘾, 𝙪, 𝙨, 𝙩 (Símbolos Alfanuméricos Matemáticos)
O ChatGPT provavelmente poderia escrever uma regex para eles, se o Discourse a suportar.
Mais uma ideia é tentar o Cloudflare com o recurso Bot Fight Mode (gratuito) e desafiar todos os bots.
Opa, essa seria a solução perfeita, vou dar uma olhada no código, obrigado!
O problema aqui é que este bot de alguma forma sabe como o Discourse funciona: No cenário a seguir, estou monitorando ❽ na seção “Exigir para Aprovação”. O problema agora é que esses bots frequentemente criam primeiro um texto aleatório e depois o editam para o conteúdo real. A edição de uma postagem não é verificada em relação à lista “Exigir para Aprovação”, veja, por exemplo,
(aqui adicionei o ❽ diretamente durante a criação da postagem)
o que significa que nossa única opção é adicioná-lo à seção de bloqueio, mas bloquear muitas palavras e caracteres pode facilmente levar a problemas onde usuários normais recebem uma mensagem confusa ao criar postagens válidas. Acho que é daí que vêm a maioria dos nossos problemas. Na minha opinião, isso é um bug, e também ao editar uma postagem, a lista “Exigir Aprovação” deve ser verificada contra o conteúdo editado quando a alteração for publicada.
Acho que palavras vigiadas não ajudarão então. Ainda não tive um ataque de spam disso, mas estou preocupado com isso porque os usuários começaram a descobrir.
Parece que um dos meus fóruns acabou de ser atingido por esse mesmo tipo de ataque de spam. Não sei se eles usaram o truque de edição, já que eu ainda não tinha as palavras de spam na lista de palavras observadas.
Seu último PR quebrou o plugin - agora ele pede a todos para confirmarem suas postagens via moderação (mesmo os moderadores) independentemente de sua localização geográfica. Alguma solução alternativa ou previsão de correção?