Chciałbym podać linki „Anuluj subskrypcję” jednym kliknięciem w stopce wiadomości e-mail wysyłanych przez moją usługę.
Oczywiście wiele skanerów spamowych skanuje wiadomości e-mail i podąża za wszelkimi linkami znajdującymi się w wiadomościach e-mail, aby skanować ich zawartość w poszukiwaniu złośliwego oprogramowania. Obejście, z którego korzystałem do tej pory:
- Jeśli strona „Anuluj subskrypcję” jest żądana przez HTTP GET, renderuje prosty formularz potwierdzenia i trochę JS, który przesyła formularz przy ładowaniu strony
- Jeśli strona „Anuluj subskrypcję” jest żądana przez HTTP POST, anulujemy subskrypcję użytkownika
W ten sposób użytkownik będzie zwykle potrzebował tylko jednego kliknięcia w formularzu i otrzyma komunikat „Zostałeś anulowany”. Jeśli mają wyłączone JS, nadal mogą ręcznie przesłać formularz potwierdzenia.
Teraz problem polega na tym, że niektóre skanery, takie jak ATP Office365, otwierają strony i wykonują w nich JS . Wykonując JS, przesyłają formularz i powodują automatyczne anulowanie subskrypcji użytkownika.
Rozważałem dodanie czeków do logiki automatycznego przesyłania JS:
- nie przesyłaj automatycznie dla określonych programów użytkownika
- nie przesyłaj automatycznie dla określonych zakresów adresów IP klientów
- wywołać zdarzenie automatycznego przesyłania po przesunięciu myszy
Ale wszystko to wydaje się być kruchymi metodami, w najlepszym razie hackami, które zepsują się, gdy skanery poczty elektronicznej zmienią taktykę.
Jestem pewien, że ten problem ma przed sobą wiele osób. Czy istnieją znane rozsądne obejścia poza rezygnacją z funkcji pojedynczego kliknięcia?
PS. Dodałem obsługę RFC 8058, ale użytkownicy nadal będą klikać łącza w stopce.