EOMY.NET
Хостинг EOMY.NET: Форум поддержки
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
RSS Feed  

Идентификация уникального пользователя
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB
Идентификация уникального пользователя
Автор Сообщение
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 918
Откуда: Минск
49871 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 12:51    Заголовок сообщения: Идентификация уникального пользователя Ответить с цитатой

Задался я вот тут таким вопросом... необходимо чтобы мой скрипт умел отличать действия уникальных пользователей... ну тоесть например открытое голосование (без регистрации) мне надо чтобы пользователь мог проголосовать только один раз на одно голосование...

Есть вариант получить Md5 хеш по IP+UserAgent и записать в базу а потом сравнивать...

При этом возник вопрос на сколько такой вариант будет работать... Ибо ось+браузер могут быть одинаковыми и люди могут сидеть по одному проксику...
Как можно ещё более точно идентифицировать посетителя ?

Куки и сессии не предлагать... ибо куки можно вручную удалить а сессии не долгосрочны Sad

Что то мне кажется это единственный вариант?! А вы как думаете?
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 13:40    Заголовок сообщения: Ответить с цитатой

Сессии, к слову, тоже завязаны на куках.
Что касается идентификации - всегда найдется способ обмануть.
Я бы посоветовал анализировать набор разных параметров числом чем больше, тем лучше и при совпадении, скажем 80% считать, что это тот же человек. Но это тоже ненадежно.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 918
Откуда: Минск
49871 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 13:49    Заголовок сообщения: Ответить с цитатой

Обмануть одно... дело в том что мне надо на долго заблокировать (в данном случае) возможность голосования для обычного пользователя куки же могут удалиться пользователем(например при переустановке браузера)...

Вот вы говорите:
Alek$ писал(а):
Я бы посоветовал анализировать набор разных параметров числом чем больше, тем лучше и при совпадении, скажем 80% считать, что это тот же человек.

А пример такого набора... и что считать за 80%? 80% параметров или 80% от каждого параметра?
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
madhamster
Согнул ложку
Согнул ложку


Зарегистрирован: 09.10.2006
Сообщения: 902

432 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 14:02    Заголовок сообщения: Ответить с цитатой

Проверка IP, куки...

REMOTE_ADDR
X_FORWARDED_FOR - не анонимные прокси выдают реальный IP


Но обеспечить 100 гарантию наверно никак нельзя...
Можа как вариант голосоанием чрез СМС.
_________________
NextStage - live music competition
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 14:06    Заголовок сообщения: Ответить с цитатой

Пример: ОС, Имя браузера и версия браузера, IP, используется ли прокси, разрешение экрана, глубина цвета и т.д. - чем больше, тем лучше. В идеале каждому фактору должен соответствовать свой вес, и если суммарный вес совпавших факторов >= 80% от максимально возможного, то юзер считается голосовавшим.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 18:00    Заголовок сообщения: Ответить с цитатой

Alek$ писал(а):
Пример: ОС, Имя браузера и версия браузера, IP, используется ли прокси, разрешение экрана, глубина цвета и т.д. - чем больше, тем лучше. В идеале каждому фактору должен соответствовать свой вес, и если суммарный вес совпавших факторов >= 80% от максимально возможного, то юзер считается голосовавшим.

1) ОС, Имя браузера и версия браузера это по сути и есть user-agent
2) разрешение экрана, глубина цвета придется подключать для этого Javascript, что усложнит проверку, хотя у большинства пользователей он одинаков
3) самая главная проблема не в том что кто-то сидит под одним прокси и совпадут ОС,IP и браузер, это то как раз будет не так часто (все таки у вас не mail.ru и не yandex), главная проблема в том что у многих пользователей существуют динамический ip адрес (точнее у весьма большого кол-ва пользователей сюда входят все кто использует ADSL, GPRS, Dial-up, другие виды мобильной связи + многие кто выходит через локальную сеть) в результате единственный точный параметр может постоянно менятся, а все остальные параметры без ip ничего не значат (по крайне мере один user-agen, расширение экрана и прочее может быть у большого кол-ва людей).
Я бы предложил следующий алгоритм:
1) устанавливаете куку для каждого пользователя
2) сохраняете ip+user-agent (с учетом REMOTE_ADDR , X_FORWARDED_FOR и т.п.)
3) если или кука или набор ip+user-agent совпадают это тот же пользователь. Если совпадает кука сохраняете новый набор ip+user-agent, если ip+user-agent, то отправляете туже куку.
Мало вероятно, что пользователь одновременно и ip поменяет и куку сотрет.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
DEXIF
#!/bin/bash
Согнул ложку


Зарегистрирован: 27.09.2006
Сообщения: 918
Откуда: Минск
49871 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 19:09    Заголовок сообщения: Ответить с цитатой

как всегда Ваденин на высоте Smile
спасибо за идею Smile
Насчёт первых трёх - я того же мнения потому и задал тут вопрос в надежде (если честно сказать) что именно вы ответите Smile
_________________


S
|D|EG| Let's Rock! | XAP в ЛИЧКУ, SAPE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
girafenok
Два пингвиненка
Два пингвина


Зарегистрирован: 17.11.2007
Сообщения: 333

11827 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 19:15    Заголовок сообщения: Ответить с цитатой

[quote="Веденин"]
Alek$ писал(а):

3) самая главная проблема не в том что кто-то сидит под одним прокси и совпадут ОС,IP и браузер, это то как раз будет не так часто


Не согласен, категорически.
Я подключен к домашней сети, выход в Интернет у нас осуществляется через NAT, то есть все сидят на одном ip, а это нехилый по протяженности район Санкт-Петербурга. К тому же у нас все образовательные учреждения города выходят через ВузТелекомЦентр, а это если не один ip на весь город, то несколько. Если учесть, что в среднем в одном ОУ два класса + компьютеры по кабинетам, то можно сбиться со счета сколько компьютеров с одинаковыми операционками, браузерами выходят под одним ip. Проверено на своем собственном сайте. Сам ищу решение данной проблемы, но как было сказано ранее 100% достоверного результата получить вряд ли удастся.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Gosudar
Два пингвина
Два пингвина


Зарегистрирован: 08.04.2007
Сообщения: 431

8014 Монеты

СообщениеДобавлено: Пн, 30 Мар, 2009 19:15    Заголовок сообщения: Ответить с цитатой

куки, куки... а если юзер блокирует все куки, маньяк блин, то как Alek$ говорит, и всё равно идеального фиг получишь Wink
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 07:46    Заголовок сообщения: Ответить с цитатой

[quote="girafenok"]
Веденин писал(а):
Alek$ писал(а):

3) самая главная проблема не в том что кто-то сидит под одним прокси и совпадут ОС,IP и браузер, это то как раз будет не так часто


Не согласен, категорически.
Я подключен к домашней сети, выход в Интернет у нас осуществляется через NAT, то есть все сидят на одном ip, а это нехилый по протяженности район Санкт-Петербурга. К тому же у нас все образовательные учреждения города выходят через ВузТелекомЦентр, а это если не один ip на весь город, то несколько. Если учесть, что в среднем в одном ОУ два класса + компьютеры по кабинетам, то можно сбиться со счета сколько компьютеров с одинаковыми операционками, браузерами выходят под одним ip. Проверено на своем собственном сайте. Сам ищу решение данной проблемы, но как было сказано ранее 100% достоверного результата получить вряд ли удастся.

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

Вообще user-agent содержит не только ОС у браузер, но и патчи с версиями типа
Код:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; WebMoney Advisor; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)

т.е. совпадение возможно, но все таки не так уж часто.

Если два разных пользователя сидят за двумя абсолютно одинаковыми компами с одиним ip то различить их без кук вряд ли можно, возможно это можно решить написав JavaScript, который получил какие-то системные параметры, типа серийного номера винта или проца, но:
1) JavaScript специально придуман, так чтобы не иметь доступа к системным ресурсам и все это уже грязные хаки
2) за такие штуки можно получить черную метку от поисковиков и антивирусов: "этот сайт может нанести вред вашему комьютеру", ибо даже чтение данных системы это уже явный признак троянов и вирусов
3) реализовать это для всех браузеров и ОС будет очень сложно

P.S. Возможно можно получить больше системных данных используя ActiveX, так как у ActiveX больше дыр в безопасности.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 08:00    Заголовок сообщения: Ответить с цитатой

Да, есть ещё один подход, который можно использовать:
1) для каждого нового пользователя запоминаем его referer
2) генерим уникальный userKey, типа gskhgksd435902
3) отправляем ему куку с userKey
4) сохраняем его id и user-agent
5) к каждой ссылке сайта добавляем &userKey=gskhgksd435902
Как правило, пользователь часто или запомнит сайт в закладках (тогда url будет содержать userKey) или вернется тем же путем (с использованием того же referer'а) или зайдет просто набрав адрес сайта (т.е. без referer'a).
Т.е. если пользователь зайдет без куки без userKey и через другой referer даже с тем же ip есть большая вероятность, что это другой пользователь. В общем идея понятна.
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 12:01    Заголовок сообщения: Ответить с цитатой

Веденин писал(а):
1) ОС, Имя браузера и версия браузера это по сути и есть user-agent

Юзер-агент на составные части необходимо разбивать, чтобы смена одного компонента юзер-агента не мешала анализировать совпадение остальных. Если исходить из полного отказа от кук, то мой способ будет наиболее стойкий.

Веденин писал(а):
2) разрешение экрана, глубина цвета придется подключать для этого Javascript, что усложнит проверку,

Отключенный JavaScript - тоже признак. Простого решения при таких требованиях, как у ТС, быть не может в принципе.
Веденин писал(а):
хотя у большинства пользователей он одинаков

Просто этому параметру нужно придать меньший вес.
Веденин писал(а):
главная проблема в том что у многих пользователей существуют динамический ip адрес

мой вариант как раз будет более-менее работать и при динамическом IP, поскольку IP - лишь один из параметров, по которому происходит идентификация.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 12:17    Заголовок сообщения: Ответить с цитатой

Alek$ писал(а):

Веденин писал(а):
главная проблема в том что у многих пользователей существуют динамический ip адрес

мой вариант как раз будет более-менее работать и при динамическом IP, поскольку IP - лишь один из параметров, по которому происходит идентификация.

Расскажите, какая комбинация параметров сможет дать уникального пользователя, если не учитывать ip адрес?
разрешение, глубина цвета, браузер, ОС даже все в совокупности никак не могут служить для определения уникальности пользователя (кол-во пользователей у которых браузер IE7, ОС - Win XP, разрешение - 1024*768, глубина - 32 бит, JavaScript и cookie включены, прокси выключен может доходить до 30-40% от всех посетителей сайта)
Какие я ещё параметры забыл?
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Alek$
11 1110 1000
11 1110 1000


Зарегистрирован: 24.11.2007
Сообщения: 1136
Откуда: Новосибирск
26695 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 12:37    Заголовок сообщения: Ответить с цитатой

Например: Links (0.9xpre12; Linux 2.2.14-5.0 i686; 80x24) - думаете таких много?
Кроме того, вы сами говорили об информации о патчах и т.д. в юзер-агенте, она тоже отличается.

В общем, вот список JS-доступных параметров с инфой о пользователе:
navigator.buildID
date.getTimezoneOffset
navigator.language
navigator.platform
navigator.plugins.*
navigator.product
navigator.productSub
navigator.securityPolicy
navigator.vendor
navigator.vendorSub
navigator.javaEnabled()

Его можно и расширять. В итоге получится очень приличная выборка, которая с неплохой вероятностью будет сигнализировать о совпадении юзера.
_________________
Самая страшная ошибка - это ошибка без видимых причин и конкретных последствий.
phpBB3 [db_update.php generator]
phpBB3 [Russian]
Антисоциальный блог
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Веденин
Красные глаза
Красные глаза


Зарегистрирован: 17.05.2007
Сообщения: 2066
Откуда: Самара
11733 Монеты

СообщениеДобавлено: Вт, 31 Мар, 2009 14:37    Заголовок сообщения: Ответить с цитатой

Alek$ писал(а):
Например: Links (0.9xpre12; Linux 2.2.14-5.0 i686; 80x24) - думаете таких много?

таких нет, зато других много

Alek$ писал(а):

Кроме того, вы сами говорили об информации о патчах и т.д. в юзер-агенте, она тоже отличается.

Там информация нескольких самых важных патчей, она может совпадать


Alek$ писал(а):

В общем, вот список JS-доступных параметров с инфой о пользователе:
navigator.buildID
navigator.language
navigator.platform
navigator.plugins.*
navigator.product
navigator.productSub
navigator.securityPolicy
navigator.vendor
navigator.vendorSub
navigator.javaEnabled()

По сути все это версия браузер и его плагинов, стандартный IE без всяких плагинов и со стандартными настройками безопасностями стоит у огромного кол-ва пользователей + в крупных фирмах все обновления централизованы, т.е. тысяча сотрудников нашей фирмы имеет одинаковые патчи ОС и браузера.


Alek$ писал(а):

date.getTimezoneOffset

если пользователи имеют один ip адрес, то они скорее всего имеют один часовой пояс? Тем более, что Московский часовой пояс имеет 30-40% рунета.

Alek$ писал(а):

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

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

Замечу что даже если у 10% совпадут эти параметры для тысячехостового портала это означает что 100 пользователей в день будут считатся за одного
_________________
Написание конвекторов, парсеров, интеграции нескольких сайтов (в личку)

Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов EOMY.NET -> Программирование для WEB Часовой пояс: GMT
На страницу 1, 2  След.
Страница 1 из 2

 


EOMY TOP 100 Rambler's Top100   Рейтинг@Mail.ru    



Powered by phpBB © 2001, 2005 phpBB Group


Рейтинг SIMPLETOP.NET