Estrategias para evitar que los escáneres de correo electrónico activen enlaces de "cancelación de suscripción"

10

Me gustaría proporcionar un solo clic en los enlaces "Cancelar suscripción" en el pie de página de los correos electrónicos que envía mi servicio.

Obviamente, muchos escáneres de spam escanearán correos electrónicos y seguirán cualquier enlace que se encuentre en los correos electrónicos para escanear sus contenidos en busca de malware. Una solución que he usado hasta ahora:

  • Si se solicita la página "Cancelar suscripción" a través de HTTP GET, se muestra un formulario de confirmación simple y un poco de JS que envía el formulario al cargar la página
  • Si se solicita la página "Cancelar suscripción" a través de HTTP POST, cancelaremos la suscripción del usuario

De esta manera, el usuario generalmente solo necesitará un solo clic en el formulario y recibirá el mensaje "Se ha cancelado su suscripción". Si tienen JS deshabilitado, aún pueden enviar manualmente el formulario de confirmación.

Ahora el problema es que algunos escáneres como el ATP de Office365 abrirán las páginas y ejecutarán JS dentro de ellas . Al ejecutar JS, envían el formulario y hacen que el usuario se dé de baja automáticamente.

He considerado agregar controles a la lógica JS de envío automático:

  • no envíe automáticamente para agentes de usuario específicos
  • no envíe automáticamente para intervalos de IP de clientes específicos
  • desencadenar el envío automático al mover el mouse

Pero todos estos parecen métodos frágiles, piratas en el mejor de los casos, que seguramente se romperán a medida que los escáneres de correo electrónico cambien sus tácticas.

Estoy seguro de que este problema ha mordido a muchas personas antes que yo. ¿Hay soluciones razonables conocidas, además de renunciar a la funcionalidad de un solo clic?

PD. He agregado soporte para RFC 8058 pero los usuarios todavía van a hacer clic en los enlaces en el pie de página.

Pēteris Caune
fuente
1
Un problema interesante, algo que viene a mi mente es el nuevo reCAPTCHA v3 invisible de Google, normalmente, no requiere ninguna acción del usuario si se ve bien.
Vladan
@Vladan podría funcionar en el "caso feliz". Si la verificación reCAPTCHA falla (por ejemplo, porque la página se abre dentro del cliente de correo electrónico donde no hay cookies de Google), entonces es muy molesto para el usuario final. Además, los datos van a Google, por lo que debe sentirse cómodo con eso, mencionarlo en la política de privacidad, etc.
Pēteris Caune
Tenemos la misma funcionalidad. Pero usamos Emarsys para crear correos electrónicos enviados a los usuarios, y en el pie de página hay un enlace simple (codificado) que hace el trabajo. Ahora me pregunto, ¿mis usuarios están siendo dados de baja por los escáneres de correo electrónico?
Vedran Maricevic.

Respuestas:

7

Este es un tema de debate en curso en M³AAWG (The Messaging, Malware, and Mobile Anti-Abuse Working Group). Es un desastre y no hay soluciones fáciles. Parece que está haciendo todo bien, pero algunos sistemas antispam son demasiado agresivos.

El gran problema es que cualquier cosa que pueda hacer también puede ser realizada por un vendedor abusivo o spammer.

La mejor propuesta que he escuchado es simplemente poner un cronómetro en la acción. Agregue un captcha para los usuarios que se den de baja dentro de los 5 minutos posteriores a la entrega y elimine el captcha después. (Do no implementar esto para su RFC 8058 Lista enlace de anulación de suscripción-Post).

Mi próxima propuesta favorita es agregar un enlace canario al mensaje. Esto debería ser invisible para los lectores humanos. Si se sigue, revierte la actividad de clics recientes de esa IP y prohíbe la activación de la acción de la IP por un tiempo.

También me gustan sus ideas, solo asegúrese de que si Javascript está deshabilitado, el usuario aún puede darse de baja después de hacer clic en el botón de confirmación.

 

Hay una parte de mí (advertencia, soy un investigador antispam) que quiere estos falsos positivos. Espero que eso les enseñe a mis compañeros que están haciendo un mal trabajo y que estas escaladas seguirán llegando a ellos. Desde su perspectiva, puede pasar el dinero (aunque perderá algunos suscriptores en el proceso).

Los sistemas de detección de spam deben tener cuidado para evitar los enlaces de administración de suscripciones (al menos hasta que los malos comiencen a disfrazar sus cargas útiles como enlaces de desuscripción).

Adam Katz
fuente
¡Gracias! Ambas son buenas ideas en las que no había pensado. Probaré el enfoque del temporizador. En mi caso, el "CAPTCHA" es un botón simple en el medio de la pantalla que solo necesita ser presionado. Para enlaces de cancelación de suscripción abiertos rápidamente, no incluiré JS para hacer clic automáticamente en ese botón. Esto debería evitar al menos Office365 ATP, que escanea los enlaces dentro de un minuto de enviar un correo electrónico. Los enlaces canarios serían un poco más difíciles de implementar (deshacer acciones, rastrear IP prohibidas). Además, existe el riesgo de que los escáneres de spam puedan marcar correos electrónicos con enlaces invisibles como spam / malware.
Pēteris Caune