Отслеживание пользователей по URL-адресам и предотвращение ручного вмешательства

#php #tracking #identifier

#php #отслеживание #идентификатор

Вопрос:

Я хотел бы отслеживать, сколько людей переходят по ссылке, отправленной по электронной почте.

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

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

Комментарии:

1. Если под «следовать» вы подразумеваете «нажать на ссылку», вы можете добавить некоторые параметры к ссылке: page.php?param1 = 1 amp; param2 …. или вы можете добавить пиксель на страницу, чтобы в любое время, когда электронное письмо открыто, вы могли получать обратную связь

2. Проверка Referer, как сказал MicronXD, вероятно, является лучшим подходом для этого. Очевидно, что это также может быть подделано / неправильно, но большинство людей не стали бы беспокоиться. Однако я не знаю, на какой тип ссылки вы ссылаетесь. Если это для людей, которые, вероятно, не посещали сайт, вы могли бы заметить, когда они посещают непосредственно, например, страницу уведомлений или что-то в этом роде, проверяя старые сеансы или любой другой метод, который вы хотите использовать.

3. @Ibu: Да, что-то подобное с идентификатором пользователя. Пиксель — это одна идея. Другой способ — генерирование одного зашифрованного идентификатора (?crypticid=52e565sdfd54 …), хотя для этого может потребоваться немного кода.

4. @Filgera: Идея состоит в том, чтобы измерить, насколько эффективны новые функции для побуждения пользователей повторно посещать сайт. Например, электронное письмо отправляется, когда пользователь публикует комментарий к фотографии. Там есть гиперссылка, которая указывает на профиль постера, на который получатель может нажать, если ему интересно.

5. Вы могли бы просто сделать что-нибудь простое, например, ?email=their@address.comcrypticid=52e565sdfd54 просто определить, как вы хотите создать этот идентификатор, что-нибудь простое, например md5 ($ addr.»salt»); вставьте это в электронное письмо, и в вашем скрипте просто if(md5($_GET['email']."salt") == $_GET['crypticid']) вы выиграете.

Ответ №1:

1) Используйте совершенно другой URL для перенаправления на реальный:

http://www.mysite.com/emailOffer -> http://www.mysite.com/specialpage

emailOffer выполнит протоколирование, а затем отправит Location HTTP-заголовок, указывающий на реальную страницу (specialpage)

http://www.mysite.com/emailOffer будет выглядеть следующим образом:

 /* SOME LOGGING CODE GOES HERE - PROBABLY MYSQL STUFFS */
header("Location: http://www.mysite.com/specialpage");
  

2) Добавьте параметр GET типа: http://www.mysite.com/specialpage?email
затем в php вы можете сделать: if(array_key_exists('email',$_GET)) addToCounter();

3) Вы могли бы регистрировать заголовок HTTP-ссылки для всех, кто попадает на страницу, и запускать запрос для ссылок, содержащих «mail» (например, mail.google.com , hotmail.com )

Чтобы предотвратить вмешательство, вы могли бы придать параметру видимость значимости: http://www.mysite.com/specialpage?secretOffer

Удачи! 🙂

PS — извините за ужасное форматирование моего ответа…

Ответ №2:

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

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

 <?php
... do counter stuff ....
header('Location: http://actual.address.com/');
?>
  

Их панель навигации изменится на новый адрес, и они едва ли даже заметят оригинал.