Браузер пользователя, кажется, вызывает запросы несколько раз в день - PullRequest
0 голосов
/ 16 мая 2018

У нас есть HTTP GET URL, который запускает электронную почту.URL был разослан по почте, поэтому без дальнейших последствий сделать его POST URL невозможно.

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

Моя теория состоит в том, что URL открывается в какой-то вкладке или выбирается заранее каждый раз, когда пользователь открывает браузер и запускает электронную почту.

Есть ли возможность «сообщить» браузеруне загружать такой URL-адрес автоматически?

Или это единственный вариант сделать страницу подтверждения, требующую дополнительного нажатия кнопки?

Пользовательский агент - это "" Mozilla / 5.0 (Windows NT 6.1;WOW64; rv: 27.0) Gecko / 20100101 Firefox / 27.0 "

РЕДАКТИРОВАТЬ : URL-адрес в основном общедоступен, но в нем есть идентификационный токен пользователя. Я знаю, что браузеры запрашивают подтверждениедля повторного размещения данных, но я не запрашиваю такого подтверждения на URL-адресах GET. Мне известно о том, что URL-адреса GET не должны вызывать каких-либо дополнительных действий, но в этом конкретном случае мы имеем URL в кнопке в электронном письме и хотел бы напрямую вызвать действие.

Так что мой вопрос больше похож на: «могу ли я сказать браузеру, что этот URL опасен для вызова дважды,т.е. вести себя так, как если бы это был POST URL, например, с помощью определенного заголовка "

1 Ответ

0 голосов
/ 16 мая 2018

Браузеры обычно не разрешают выполнение такого фрагмента кода из определенного домена, поскольку они рассматриваются как лазейки в безопасности с точки зрения браузера конечного пользователя. Мне кажется, что ваша теория верна, поскольку, когда я отключаю и снова подключаю свой ноутбук к Интернету, обычно все вкладки браузера Chrome обновляются после простого нажатия на них. Вы можете получить IP-адрес компьютера пользователя из балансировщика нагрузки ИЛИ из журналов веб-сервера / сервера приложений, чтобы подтвердить его один раз.

Но даже если вы найдете решение «рассказать» браузеру, я уверен, что НЕ все браузеры позволят. Наличие страницы подтверждения и / или превращение ее в вызов POST, безусловно, сделает ее надежной (учитывая, что поисковые системы также могут иногда вызывать публично открытые URL-адреса GET для обновления своих индексов).

Методы GET, HEAD, OPTIONS и TRACE определены как безопасные, то есть они предназначены только для извлечения данных. Это также делает их идемпотентными, поскольку несколько одинаковых запросов будут вести себя одинаково, но в GET все выглядит немного иначе: D

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

См. Соответствующее обсуждение здесь: Можно ли отключить обновление браузера в моем веб-приложении?

...