Ich möchte in der Fußzeile der E-Mails, die mein Dienst sendet, einen Link zum Abbestellen "Abbestellen" bereitstellen.
Offensichtlich scannen viele Spam-Scanner E-Mails und folgen den in den E-Mails enthaltenen Links, um deren Inhalt auf Malware zu scannen. Eine Problemumgehung, die ich bisher verwendet habe:
- Wenn die Seite "Abbestellen" über HTTP GET angefordert wird, werden ein einfaches Bestätigungsformular und ein bisschen JS gerendert, das das Formular beim Laden der Seite sendet
- Wenn die Seite "Abbestellen" über HTTP POST angefordert wird, melden wir den Benutzer ab
Auf diese Weise benötigt der Benutzer normalerweise nur einen einzigen Klick auf das Formular und erhält die Meldung "Sie wurden abgemeldet". Wenn JS deaktiviert ist, können sie das Bestätigungsformular weiterhin manuell senden.
Das Problem ist nun, dass einige Scanner wie die ATP von Office365 die Seiten öffnen und JS darin ausführen . Durch Ausführen von JS senden sie das Formular und veranlassen den Benutzer, sich automatisch abzumelden.
Ich habe überlegt, der JS-Logik für die automatische Übermittlung Überprüfungen hinzuzufügen:
- Nicht automatisch für bestimmte Benutzeragenten senden
- Nicht automatisch für bestimmte Client-IP-Bereiche senden
- Lösen Sie das Ereignis zum automatischen Senden bei Mausbewegung aus
Aber all dies scheinen spröde Methoden zu sein, bestenfalls Hacks, die brechen müssen, wenn E-Mail-Scanner ihre Taktik ändern.
Ich bin sicher, dieses Problem hat viele Leute vor mir gebissen. Gibt es bekannte vernünftige Problemumgehungen, abgesehen davon, dass Sie nur die Single-Click-Funktionalität aufgeben?
PS. Ich habe Unterstützung für RFC 8058 hinzugefügt, aber Benutzer werden weiterhin auf Links in der Fußzeile klicken.