Запретить предварительную загрузку ссылок в сообщениях электронной почты

Я отправляю электронные письма с приглашением на мероприятие в формате HTML клиентам со ссылками «принять/отклонить» в них. Похоже, что некоторые из этих ссылок загружаются заранее, что приводит к автоматическому отклонению приглашений. О, молодец.

Я добавил к ссылкам атрибут rel="nofollow", чтобы почтовые серверы, клиенты или другие скрытые посредники не «щелкали» по ссылкам. Это помогло, но не полностью устранило проблему - у меня все еще есть бот, предварительно загружающий ссылки при отправке на адреса Outlook.com, по крайней мере.

Я хотел бы избежать дополнительных действий со стороны получателей электронной почты после (подлинного) перехода по этим ссылкам, особенно в случае «отклонения», поэтому я вижу два пути решения этой проблемы:

  1. Найдите дополнительные механизмы, чтобы предотвратить переход по ссылкам своенравных ботов. Однако пока ничего другого по этому поводу в моих поисках нет.
  2. Обнаруживайте активность бота, когда ссылки загружаются заранее, и игнорируйте их в таких случаях.

Для последнего это не просто проверка заголовка UserAgent - пример, который я сейчас вижу:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

По общему признанию, это уже старая версия Chrome, но это не веская причина игнорировать ее! К сожалению, я не вижу в заголовках HTTP ничего полезного, что могло бы меня насторожить.

Чего я пока не знаю, так это того, попытается ли преступник, выполняющий предварительную загрузку, выполнить какой-либо «загрузочный» код Javascript на целевой странице. Если нет, то это может быть билет.

Любые предложения приветствуются!

ОБНОВЛЕНИЕ

Попытались ответить на первоначальный запрос страницей, вызывающей перенаправление на стороне клиента либо через тег <meta>, либо с помощью обработчика события загрузки тела. Оба были казнены ботом-нарушителем, так что, по крайней мере, никакой радости. Мне интересно, придется ли мне опускаться до невидимой рекапчи, чтобы решить эту. Фу.


person John Rix    schedule 19.06.2019    source источник
comment
В любом случае вам, вероятно, не следует иметь запросы GET на изменение состояния. Используйте только POST (т. е. форму) для отписки.   -  person Robert    schedule 24.06.2019


Ответы (1)


В конечном итоге я не нашел панацеи от этой проблемы, и мне пришлось добавить промежуточные страницы в свой рабочий процесс, где приглашенные должны подтвердить свое согласие или отказ от приглашений на моем сайте с помощью дополнительного щелчка после перехода по ссылкам в электронных письмах с приглашением. Не то, что я в конечном итоге хотел, но, к сожалению, я оказался загнанным в угол с этим.

Я могу вернуться к этому в какой-то момент и попытаться свести к минимуму потребность в дополнительных кликах, используя recaptcha v3, чтобы попытаться обнаружить посетителей-ботов, но это все равно требует перемещения посетителя сайта между страницами и не очень удобный пользовательский интерфейс.

person John Rix    schedule 24.06.2019