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.
fuente
Respuestas:
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).
fuente