Je voudrais fournir un simple clic sur les liens "Se désinscrire" dans le pied de page des e-mails envoyés par mon service.
De toute évidence, de nombreux scanners de spam analyseront les e-mails et suivront tous les liens trouvés dans les e-mails pour analyser leur contenu à la recherche de logiciels malveillants. Une solution de contournement que j'ai utilisée jusqu'à présent:
- Si la page "Se désinscrire" est demandée via HTTP GET, elle affiche un simple formulaire de confirmation et un peu de JS qui soumet le formulaire au chargement de la page
- Si la page "Désinscription" est demandée via HTTP POST, nous désinscrivons l'utilisateur
De cette façon, l'utilisateur n'aura généralement besoin que d'un seul clic sur le formulaire et recevra un message "Vous avez été désabonné". S'ils ont désactivé JS, ils peuvent toujours soumettre manuellement le formulaire de confirmation.
Maintenant, le problème est que certains scanners comme l'ATP d'Office365 ouvriront les pages et exécuteront JS à l'intérieur . En exécutant JS, ils soumettent le formulaire et entraînent la désinscription automatique de l'utilisateur.
J'ai envisagé d'ajouter des vérifications à la logique JS de soumission automatique:
- ne pas soumettre automatiquement pour des agents utilisateurs spécifiques
- ne pas soumettre automatiquement pour des plages d'adresses IP client spécifiques
- déclencher l'événement de soumission automatique lors du déplacement de la souris
Mais tout cela semble être des méthodes fragiles, des hacks au mieux, qui ne manqueront pas de briser lorsque les scanners de messagerie changeront de tactique.
Je suis sûr que ce problème a mordu beaucoup de gens avant moi. Existe-t-il des solutions de contournement raisonnables, en plus de simplement abandonner la fonctionnalité de simple clic?
PS. J'ai ajouté la prise en charge de RFC 8058, mais les utilisateurs vont toujours cliquer sur les liens dans le pied de page.