PHP: Дайте каждому пользователю уникальный идентификатор, даже не входя в систему! - PullRequest
1 голос
/ 02 мая 2011

У меня есть сайт для потокового видео, PHP, MySQL.

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

IP может измениться.

Сетевой MAC-адрес?

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

Ответы [ 3 ]

1 голос
/ 02 мая 2011

Если бы вы пошли на это, одним из способов было бы использовать что-то вроде определения IP, размера экрана, шрифтов и т. Д., Затем сохранить это и предположить, что если 90% - это то же самое, то это тот же человек.

http://panopticlick.eff.org/ содержит демонстрацию доступных данных (albiet в другом контексте).

Другой способ - использовать комбинацию файлов cookie, локального хранилища, flash-файлов cookie и т. Д. И проверить это. Демонстрация этого была бы http://samy.pl/evercookie/, это довольно инвазивный способ сделать это, поскольку пользователь никогда не сможет удалить cookie.

1 голос
/ 02 мая 2011

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

IP-адрес может измениться, MAC-адрес не может быть получен. И куки могут быть удалены.

Ничто очень безопасное для хранения и представления их данных ... если вы не позволите им создать учетную запись (или использовать что-то вроде oAuth и т. Д.).

Это также устраняет проблему, связанную с тем, что они не смогут просматривать сохраненную информацию на других компьютерах.

0 голосов
/ 02 мая 2011

К сожалению, вы не можете получить MAC-адрес только с помощью PHP.

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

$new_guest_id = SELECT MIN(0, `id`) - 1 AS `id` FROM `users`;
$new_registered_id = SELECT MAX(0, `id`) + 1 AS `id` FROM `users`;

Отрицательные идентификаторы пользователя будут время от времени очищаться с помощью задания CRON:

DELETE FROM `users` WHERE `id` < 0 AND `date` <= DATE_SUB(CURDATE(), INTERVAL 7 DAY);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...