Estratégias para impedir que os scanners de email ativem os links de "cancelamento da inscrição"

10

Gostaria de fornecer um clique em "Cancelar inscrição" no rodapé dos e-mails que meu serviço envia.

Obviamente, muitos verificadores de spam verificam e-mails e seguem os links encontrados nos e-mails para verificar se há malware em seu conteúdo. Uma solução alternativa que usei até agora:

  • Se a página "Cancelar inscrição" for solicitada via HTTP GET, ela renderizará um formulário de confirmação simples e um pouco de JS que envia o formulário no carregamento da página
  • Se a página "Cancelar inscrição" for solicitada via HTTP POST, cancelamos a inscrição do usuário

Dessa forma, o usuário normalmente precisará apenas de um único clique no formulário e receberá a mensagem "Você foi cancelado". Se eles tiverem o JS desativado, ainda poderão enviar manualmente o formulário de confirmação.

Agora, o problema é que alguns scanners como o ATP do Office365 abrirão as páginas e executarão o JS dentro delas . Ao executar o JS, eles enviam o formulário e fazem com que o usuário seja cancelado automaticamente a inscrição.

Considerei adicionar verificações à lógica JS de envio automático:

  • não envie automaticamente para agentes de usuários específicos
  • não envie automaticamente para intervalos de IP de clientes específicos
  • acionar o evento de envio automático ao mover o mouse

Mas todos esses parecem métodos frágeis, na melhor das hipóteses, que podem quebrar à medida que os scanners de e-mail mudam suas táticas.

Tenho certeza de que esse problema tem muitas pessoas diante de mim. Existem soluções razoáveis ​​conhecidas, além de desistir da funcionalidade de clique único?

PS. Eu adicionei suporte ao RFC 8058, mas os usuários ainda clicam em links no rodapé.

Pēteris Caune
fonte
11
Um problema interessante, algo que me vem à cabeça é o novo reCAPTCHA v3 invisível do Google; normalmente, ele não requer nenhuma ação do usuário se estiver ok.
Vladan
@ Vladan poderia trabalhar no "caso feliz". Se a verificação do reCAPTCHA falhar (por exemplo, porque a página é aberta dentro do cliente de e-mail onde não há cookie do Google), isso é muito irritante para o usuário final. Além disso, os dados são direcionados ao Google, então você precisa se
familiarizar
Temos a mesma funcionalidade. Mas usamos o Emarsys para criar e-mails enviados aos usuários e, no rodapé, existe um link simples (codificado) que faz o trabalho. Agora, você me perguntou: meus usuários estão sendo desinscritos por scanners de e-mail?
Vedran Maricevic.

Respostas:

7

Este é um tópico de debate em andamento no M³AAWG (grupo de trabalho de mensagens, malwares e dispositivos móveis de combate ao abuso). É uma bagunça e não há soluções fáceis. Parece que você está fazendo tudo certo, mas alguns sistemas anti-spam são um pouco agressivos.

O grande problema é que tudo o que você pode fazer também pode ser feito por um comerciante ou spammer abusivo.

A melhor proposta que ouvi é apenas colocar um cronômetro na ação. Adicione um captcha para usuários que cancelam a inscrição dentro de 5 minutos após a entrega e remova o captcha posteriormente. (Do não implementar isso para o seu RFC 8058 List-Unsubscribe-Post link.)

Minha próxima proposta favorita é adicionar um link canário à mensagem. Isso deve ser invisível para os leitores humanos. Se for seguido, ele reverte a atividade de cliques recentes desse IP e o bane dos acionadores de ação por um tempo.

Também gosto das suas ideias, apenas se o Javascript estiver desativado, o usuário ainda poderá cancelar a inscrição após um clique no botão de confirmação.

 

Há uma parte de mim (aviso, sou um pesquisador anti-spam) que deseja esses falsos positivos. Espero que isso ensine aos meus colegas que eles estão fazendo um trabalho tão ruim e que essas escaladas continuarão chegando até eles. Da sua perspectiva, você passa a mão na bola (embora você perca alguns assinantes no processo).

Os sistemas de detecção de spam devem ter cuidado para evitar links de gerenciamento de assinaturas (pelo menos até que os bandidos comecem a disfarçar suas cargas úteis como links não assinados).

Adam Katz
fonte
Obrigado! Ambas são boas idéias nas quais eu não tinha pensado. Vou tentar a abordagem do temporizador. No meu caso, o "CAPTCHA" é um botão simples no meio da tela que só precisa ser clicado. Para links de cancelamento de inscrição abertos rapidamente, não incluirei JS para clicar automaticamente nesse botão. Isso deve contornar o Office365 ATP, pelo menos, que verifica os links dentro de um minuto após o envio de um email. Os links para canários seriam bem mais difíceis de implementar (desfazendo ações, rastreando IPs proibidos). Além disso, existe o risco de os scanners de spam sinalizarem emails com links invisíveis como spam / malware.
Pēteris Caune