Я хотел бы предоставить ссылки "Отписаться" одним щелчком мыши в нижнем колонтитуле сообщений электронной почты, отправляемых моей службой.
Очевидно, что многие сканеры спама сканируют электронные письма и следуют по любым ссылкам, найденным в электронных письмах, для сканирования их содержимого на наличие вредоносных программ. Обходной путь, который я использовал до сих пор:
- Если страница «Отписаться» запрашивается через HTTP GET, она отображает простую форму подтверждения и небольшой JS, который отправляет форму при загрузке страницы.
- Если страница «Отписаться» запрашивается через HTTP POST, мы отписываем пользователя
Таким образом, пользователю обычно требуется всего один клик по форме, и он получит сообщение «Вы были отписаны». Если у них отключен JS, они все равно могут вручную отправить форму подтверждения.
Теперь проблема в том, что некоторые сканеры, такие как ATP в Office365, открывают страницы и запускают внутри них JS . Выполняя JS, они отправляют форму и заставляют пользователя автоматически отписаться.
Я рассмотрел добавление проверок в логику автоматической отправки JS:
- не отправлять автоматически для определенных пользовательских агентов
- не отправлять автоматически для определенных диапазонов IP-адресов клиентов
- вызвать автоматическую отправку при перемещении мыши
Но все это похоже на хрупкие методы, в лучшем случае хаки, которые обязательно сломаются, когда сканеры электронной почты изменят свою тактику.
Я уверен, что эта проблема имеет много людей до меня. Известны ли разумные обходные пути, кроме отказа от функциональности одним щелчком мыши?
PS. Я добавил поддержку RFC 8058, но пользователи все еще будут переходить по ссылкам в нижнем колонтитуле.