Есть ли какой-либо надежный способ идентификации пользовательской машины уникальным способом? [Дубликат]

Имейте в виду, что независимо от сценария причина всегда одинакова в .NET:

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

Вы либо никогда не присваивали какую-либо переменную, никогда не создавали экземпляр значения, присвоенного переменной, или вы вручную устанавливали переменную, равную Nothing / null, или вы вызывали функцию, которая установите для этой переменной значение Nothing / null.

147
задан thkala 10 December 2011 в 12:43
поделиться

21 ответ

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

Это довольно распространенный тип аутентификации, используемый банками.

Скажите, что вы обращаетесь на свой банковский сайт через example-isp.com. В первый раз, когда вы там, вас попросят ввести свой пароль, а также дополнительную проверку подлинности. После того, как вы прошли, банк знает, что пользователь «thatisvaliant» аутентифицирован для доступа к сайту через example-isp.com.

В будущем он не будет запрашивать дополнительную аутентификацию (кроме вашего пароля ), когда вы обращаетесь к сайту через example-isp.com. Если вы попытаетесь получить доступ к банку через another-isp.com, банк снова повторит ту же процедуру.

Итак, чтобы определить, какой идентификатор банка является вашим интернет-провайдером и / или netblock, на основе вашего Айпи адрес. Очевидно, что не каждый пользователь вашего интернет-провайдера - это то, почему банк все еще спрашивает вас о вашем пароле.

У вас когда-либо был звонок по кредитной карте, чтобы убедиться, что все в порядке, когда вы используете кредитную карту в другой стране? Та же концепция.

5
ответ дан Anirvan 28 August 2018 в 02:54
поделиться

Возможно, вы захотите попробовать установить уникальный идентификатор в evercookie (он будет работать с перекрестным браузером, см. их часто задаваемые вопросы): http://samy.pl/evercookie/

Существует также компания под названием ThreatMetrix, которая используется многими крупными компаниями для решения этой проблемы: http://threatmetrix.com/our-solutions/solutions-by-product/trustdefender-id/ Они довольно дороги, а некоторые из их других продуктов не очень хороши, но их идентификатор устройства работает хорошо.

Наконец, есть реализация jQuery с открытым исходным кодом идеи panopticlick: https: //github.com/carlo/jquery-browser-fingerprint Он выглядит довольно наполовину испеченным прямо сейчас, но может быть расширен.

Надеюсь, что это поможет!

21
ответ дан Brian Armstrong 28 August 2018 в 02:54
поделиться

Существует лишь небольшая информация, которую вы можете получить через HTTP-соединение.

  1. IP - Но, как говорили другие, это не исправлено для многих, если не для большинства пользователей Интернета из-за политики их динамического размещения.
  2. Useragent String - почти все браузеры отправляют какой браузер они с каждым запросом. Тем не менее, это может быть установлено пользователем во многих браузерах сегодня.
  3. Сбор полей запроса. Есть другие поля, отправленные с каждым запросом, такие как поддерживаемые кодировки и т. Д. Эти, если они используются в совокупности, могут помочь идентифицировать машину пользователя, но снова зависит от браузера и может быть изменен.
  4. Cookies. Настройка cookie - это еще один способ идентифицировать машину или, более конкретно, браузер на машине, но, как и другие, сказал, что они могут быть удалены или отключены пользователями и применимы только в браузере, а не в машине.

Итак, правильный ответ заключается в том, что вы не можете достичь того, что вы жить по протоколам HTTP поверх IP. Однако, используя комбинацию файлов cookie, а также IP и поля в HTTP-запросе, у вас есть хорошие шансы на угадывание, что-то вроде того, что это за машина. Пользователи, как правило, используют только один браузер, и часто с одной машины, поэтому это может быть довольно доступным, но это будет зависеть от аудитории ... технари, скорее всего, будут возиться с этим материалом и использовать больше машин / браузеров. Кроме того, это может быть связано даже с попыткой геолокации IP-адреса и использования этих данных. Но в любом случае нет никакого решения, которое будет правильным все время.

10
ответ дан cdeszaq 28 August 2018 в 02:54
поделиться

Предложения об использовании файлов cookie в стороне, единственный исчерпывающий набор идентификационных атрибутов, доступных для опроса, содержится в заголовке запроса HTTP. Таким образом, можно использовать некоторое подмножество из них для создания псевдо-уникального идентификатора для пользовательского агента (то есть браузера). Кроме того, большая часть этой информации, возможно, уже зарегистрирована в так называемом «протоколе доступа» вашего программного обеспечения веб-сервера по умолчанию и, если нет, может быть легко настроена для этого. Затем можно было бы разработать uttity, который просто сканирует содержимое этого журнала, создавая отпечатки пальцев каждого запроса, состоящего, например, из IP-адреса и строки User Agent и т. Д. Чем больше данных доступно, содержимое конкретных файлов cookie, добавляет к качеству уникальности этого отпечатка пальца. Хотя, как уже многие другие уже заявили, протокол HTTP не делает этот 100% надежным - в лучшем случае это может быть довольно неплохим показателем.

6
ответ дан Danny Whitt 28 August 2018 в 02:54
поделиться

Файлы cookie не будут полезны для определения уникальных посетителей. Пользователь может очистить файлы cookie и обновить сайт - он снова классифицируется как новый пользователь.

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

Использование PHP, например, тривиально, чтобы получить IP-адрес посетителя и сохранить его в текстовом файле ( или база данных sql).

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

Надеюсь, что это поможет.

3
ответ дан different 28 August 2018 в 02:54
поделиться

Поскольку я хочу, чтобы решение работало на всех машинах и во всех браузерах (в разумных пределах), я пытаюсь создать решение с помощью javascript.

Разве это не правда хорошая причина not использовать javascript?

Как говорили другие - файлы cookie, вероятно, являются вашим лучшим вариантом - просто обратите внимание на ограничения.

3
ответ дан Draemon 28 August 2018 в 02:54
поделиться

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

2
ответ дан Eric Hogue 28 August 2018 в 02:54
поделиться

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

32
ответ дан erickson 28 August 2018 в 02:54
поделиться

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

https://panopticlick.eff.org/static/browser-uniqueness.pdf

Мы исследуем степень, в которой современные веб-браузеры подвергаются «отпечатку пальца устройства» через информацию о версии и конфигурации, которую они будут передавать на веб-сайты по запросу. Мы реализовали один возможный алгоритм отпечатка пальца и собрали эти отпечатки пальцев из большого набора браузеров, которые посетили нашу тестовую сторону, panopticlick.eff.org . Мы заметили, что распределение нашего отпечатка пальца содержит не менее 18,1 бит энтропии, а это означает, что если мы выбираем браузер случайным образом, в лучшем случае мы ожидаем, что только один из 286 777 других браузеров поделится своим отпечатком. Среди браузеров, поддерживающих Flash или Java, ситуация хуже, причем средний браузер имеет не менее 18,8 бит идентификационной информации. 94.2% браузеров с Flash или Java были уникальными в нашем примере.

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

Мы обсуждаем, что на самом деле представляет собой отпечаток пальца для обеспечения конфиденциальности, и какие контрмеры могут быть подходящими для предотвращения этого. Существует компромисс между защитой от отпечатков пальцев и некоторыми видами отладки, которые в современных браузерах сильно зависят от конфиденциальности. Как это ни парадоксально, технологии защиты от отпечатков пальцев могут быть самонадеянными, если они не используются достаточным количеством людей; мы показываем, что некоторые меры по обеспечению конфиденциальности в настоящее время становятся жертвами этого парадокса, но другие не ...

51
ответ дан gnat 28 August 2018 в 02:54
поделиться

Возможно использование флеш-файлов cookie :

  • Вездесущая доступность (95 процентов посетителей, вероятно, будут иметь вспышку)
  • Вы можете хранить больше данные на файл cookie (до 100 КБ)
  • Общие для браузеров, поэтому более вероятно уникальная идентификация машины
  • . Очистка куки-файлов браузера не удаляет флеш-файлы cookie.

Вам нужно будет создать небольшой (скрытый) флеш-фильм для чтения и записи.

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

31
ответ дан Joeri Sebrechts 28 August 2018 в 02:54
поделиться

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

Если вы хотите заставить своего посетителя установить какое-то программное обеспечение и использовать TCPA, вы можете что-то вытащить из него. .

0
ответ дан John Nilsson 28 August 2018 в 02:54
поделиться

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

Если вы действительно хотите идентифицировать людей , войдите в систему.

Поскольку они, вероятно, будут перемещаться разные страницы на вашем веб-сайте, вам нужен способ отслеживать их по мере их перемещения.

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

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

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

4
ответ дан JohnnySoftware 28 August 2018 в 02:54
поделиться

A Trick:

  1. Создайте 2 страницы регистрации: первая страница регистрации: без какой-либо проверки по электронной почте или безопасности (только с именем пользователя и паролем) Вторая страница регистрации: с высоким уровнем безопасности (запрос проверки электронной почты и изображение безопасности и т. д.)
  2. Для удобства клиентов и простой регистрации страница регистрации по умолчанию должна быть (первая страница регистрации), но на (первой странице регистрации) есть скрытое ограничение. Это ограничение IP. Если IP попытался зарегистрироваться во второй раз (например, менее 1 часа), вместо того, чтобы показывать страницу блока. вы можете показать страницу (Вторая регистрационная страница) автоматически.
  3. на странице (Первая страница регистрации), которую вы можете установить (например: блок 2 попытки с 1 ip всего за 1 час или 24 часа) и после (для пример) 1 час, вы можете открыть доступ из этого ip автоматически

Обратите внимание: (Первая страница регистрации) и (Вторая страница регистрации) не должны находиться в отдельных страницах. вы делаете только 1 страницу. (например: register.php) и сделать его умным для переключения между First PHP Style и Second PHP Style

0
ответ дан Mahdi Jazini 28 August 2018 в 02:54
поделиться

Мое сообщение не может быть решением, но я могу привести пример, где эта функция была реализована.

Если вы впервые заходите на страницу регистрации www.supertorrents.org с вашего компьютера, все нормально. Но если вы обновите страницу или снова откроете страницу, она идентифицирует, что вы ранее посещали страницу. Настоящая красота приходит сюда - она ​​идентифицируется, даже если вы переустанавливаете Windows или другую ОС.

Я где-то читал, что они хранят идентификатор ЦП. Хотя я не мог найти, как они это делают, я серьезно сомневаюсь в этом, и они могут использовать MAC-адрес для этого.

Я определенно разделим, если найду , как для этого.

0
ответ дан Mr Programmer 28 August 2018 в 02:54
поделиться

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

В статье также рассматриваются другие постоянные методы отслеживания, такие как evercookies, refawning http и Flash cookie, а также синхронизация файлов cookie.

Подробнее о снятии отпечатков пальцев здесь:

19
ответ дан Per Quested Aronsson 28 August 2018 в 02:54
поделиться

Как и в предыдущих решениях, cookie-файлы являются хорошим методом, имейте в виду, что они идентифицируют браузеры. Если бы я посетил веб-сайт в Firefox, а затем в Internet Explorer файлы cookie будут храниться для обеих попыток отдельно. Некоторые пользователи также отключили куки-файлы (но больше людей отключили JavaScript).

Еще один способ рассмотрения - это I.P. и идентификация имени хоста (помните, что они могут различаться для пользователей удаленного доступа / нестатического IP-адреса, AOL также использует защищенные IP-адреса). Однако, поскольку это только идентифицирует сети, это может не работать, а также файлы cookie.

8
ответ дан Ross 28 August 2018 в 02:54
поделиться

Я думаю, что файлы cookie могут быть тем, что вы ищете; это то, как большинство сайтов уникально идентифицируют посетителей.

1
ответ дан Steve 28 August 2018 в 02:54
поделиться

Есть недостатки как в подходах cookie, так и в не-cookie. Но если вы можете простить недостатки подхода к cookie, вот идея.

Если вы уже используете Google Analytics на своем сайте, вам не нужно писать код, чтобы отслеживать уникальных пользователей самостоятельно. Google Analytics делает это для вас через [cookie] __utma, как описано в документации Google . И повторно используя это значение, вы не создаете дополнительную полезную нагрузку cookie, которая имеет преимущества эффективности при запросах страниц.

И вы могли бы написать код достаточно легко, чтобы получить доступ к этому значению, или использовать этот скрипт getUniqueId().

9
ответ дан Steve Wortham 28 August 2018 в 02:54
поделиться

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

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

далее, после многоголоса сегодня я нашел следующую компанию, которая утверждает, что продает решение, которое однозначно идентифицирует машины, которые посетите веб-сайт. http://www.the41.com/products.asp .

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

2
ответ дан thatisvaliant 28 August 2018 в 02:54
поделиться

Вы можете использовать fingerprintjs2

new Fingerprint2().get(function(result, components) {
  console.log(result) // a hash, representing your device fingerprint
  console.log(components) // an array of FP components
  //submit hash and JSON object to the server 
})

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

0
ответ дан Toolkit 28 August 2018 в 02:54
поделиться
21
ответ дан Walter 28 August 2018 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: