Как однозначно идентифицировать компьютеры, посещающие мой веб-сайт?

javascript cookies browser

162558 просмотра

21 ответа

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

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

Я ценю помощь. Благодарю.

РЕДАКТИРОВАТЬ:

Печеньки не подойдут.

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

Автор: thatisvaliant Источник Размещён: 30.10.2019 07:09

Ответы (21)


57 плюса

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

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

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

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

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

Автор: Jonathan Размещён: 20.07.2010 07:14

36 плюса

Введение

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

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

Даже если есть способы отследить компьютер без использования файлов cookie, всегда найдется способ обойти его и программное обеспечение, которое сделает это автоматически. Если вам действительно нужно что-то отслеживать на компьютере, вам придется написать собственное приложение (Apple Store / Android Store / Windows Program / etc).

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

sesssion:
  sessionID: string
  // Global session data goes here

  computers: [{
     BrowserID: string
     ComputerID: string
     FingerprintID: string
     userID: string
     authToken: string
     ipAddresses: ["203.525....", "203.525...", ...]
     // Computer session data goes here
  }, ...]

Преимущества отслеживания на основе сеанса:

  1. Для зарегистрированных пользователей вы всегда можете сгенерировать один и тот же идентификатор сеанса из пользователей username/ password/ email.
  2. Вы все еще можете отслеживать гостевых пользователей, используя sessionID.
  3. Даже если несколько человек используют один и тот же компьютер (например, интернет-кафе), вы можете отслеживать их отдельно, если они вошли в систему.

Недостатки отслеживания на основе сеанса:

  1. Сессии основаны на браузере, а не на компьютере. Если пользователь использует 2 разных браузера, это приведет к 2 разным сеансам. Если это проблема, вы можете перестать читать здесь.
  2. Сессии истекают, если пользователь не вошел в систему. Если пользователь не вошел в систему, то он будет использовать гостевой сеанс, который будет признан недействительным, если пользователь удалит файлы cookie и кэш браузера.

Реализация

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

основы

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

Для реализации этого я буду использовать механизм кэширования браузеров ( RFC ), API WebStorage ( MDN ) и файлы cookie браузера ( RFC , Google Analytics ).

легальный

Чтобы использовать идентификаторы отслеживания, вам необходимо добавить их как в вашу политику конфиденциальности, так и в условия использования, предпочтительно в разделе « Отслеживание» . Мы будем использовать следующие клавиши на обоих document.cookieи window.localStorage:

  • _ga : данные Google Analytics
  • __utma : файл cookie для отслеживания Google Analytics
  • sid : SessionID

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

Где я могу хранить свои данные сеанса?

Вы можете сохранить данные сеанса в базе данных вашего веб-сайта или на компьютере пользователя. Поскольку я обычно работаю на небольших сайтах (пусть более 10 тысяч непрерывных подключений), которые используют сторонние приложения (Google Analytics / Clicky / etc), лучше всего хранить данные на клиентском компьютере. Это имеет следующие преимущества:

  1. Нет поиска в базе данных / накладные расходы / нагрузка / задержка / пробел / т. Д.
  2. Пользователь может удалить свои данные в любое время без необходимости писать мне раздражающие электронные письма.

и недостатки:

  1. Данные должны быть зашифрованы / расшифрованы и подписаны / проверены, что создает накладные расходы процессора на клиенте (не так уж плохо) и сервере (ба!).
  2. Данные удаляются, когда пользователь удаляет свои куки и кеш. (это то, что я действительно хочу)
  3. Данные недоступны для аналитики, когда пользователи выходят в автономный режим. (аналитика только для пользователей, просматривающих в настоящее время)

UUIDs

  • BrowserID : уникальный идентификатор, сгенерированный из строки пользовательского агента браузера.Browser|BrowserVersion|OS|OSVersion|Processor|MozzilaMajorVersion|GeckoMajorVersion
  • ComputerID : генерируется из IP-адреса пользователя и сеансового ключа HTTPS. getISP(requestIP)|getHTTPSClientKey()
  • FingerPrintID : снятие отпечатков на основе JavaScript на основе измененного fingerprint.js .FingerPrint.get()
  • SessionID : случайный ключ, генерируемый при первом посещении сайта пользователем.BrowserID|ComputerID|randombytes(256)
  • GoogleID : создан из __utmacookie.getCookie(__utma).uniqueid

Механизм

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

  1. Удаляет историю посещенных сайтов.
  2. Удаляет печенье и window.localStorage(ооо человек).

Большинство современных браузеров делают эту опцию доступной, но не бойтесь друзей. Ибо есть решение. В браузере есть механизм кэширования для хранения скриптов / изображений и прочего. Обычно, даже если мы удаляем нашу историю, этот кеш браузера остается. Все, что нам нужно, это способ хранения наших данных здесь. Есть 2 способа сделать это. Лучше использовать SVG-изображение и хранить наши данные в его тегах. Таким образом, данные могут быть извлечены, даже если JavaScript отключен с помощью Flash. Однако, поскольку это немного сложно, я продемонстрирую другой подход, который использует JSONP ( Википедия )

example.com/assets/js/tracking.js (на самом деле tracking.php)

var now = new Date();
var window.__sid = "SessionID"; // Server generated

setCookie("sid", window.__sid, now.setFullYear(now.getFullYear() + 1, now.getMonth(), now.getDate() - 1));

if( "localStorage" in window ) {
  window.localStorage.setItem("sid", window.__sid);
}

Теперь мы можем получить наш сессионный ключ в любое время:

window.__sid || window.localStorage.getItem("sid") || getCookie("sid") || ""

Как сделать track.js стикером в браузере?

Мы можем достичь этого, используя HTTP-заголовки Cache-Control , Last-Modified и ETag . Мы можем использовать SessionIDкак значение для заголовка etag:

setHeaders({
  "ETag": SessionID,
  "Last-Modified": new Date(0).toUTCString(),
  "Cache-Control": "private, max-age=31536000, s-max-age=31536000, must-revalidate"
})

Last-ModifiedЗаголовок сообщает браузеру, что этот файл практически никогда не изменяется. Cache-Controlговорит прокси и шлюзам не кэшировать документ, но сообщает браузеру кэшировать его в течение 1 года.

В следующий раз, когда браузер запросит документ, он отправит If-Modified-Sinceи If-None-Matchзаголовки. Мы можем использовать их, чтобы вернуть 304 Not Modifiedответ.

example.com/assets/js/tracking.php

$sid = getHeader("If-None-Match") ?: getHeader("if-none-match") ?: getHeader("IF-NONE-MATCH") ?: ""; 
$ifModifiedSince = hasHeader("If-Modified-Since") ?: hasHeader("if-modified-since") ?: hasHeader("IF-MODIFIED-SINCE");

if( validateSession($sid) ) {
  if( sessionExists($sid) ) {
    continueSession($sid);
    send304();
  } else {
    startSession($sid);
    send304();
  }
} else if( $ifModifiedSince ) {
  send304();
} else {
  startSession();
  send200();
}

Теперь каждый раз, когда браузер запрашивает, tracking.jsнаш сервер ответит 304 Not Modifiedрезультатом и принудительно выполнит локальную копию tracking.js.

Я до сих пор не понимаю. Объясни мне

Предположим, что пользователь очищает историю просмотров и обновляет страницу. Единственное, что осталось на компьютере пользователя - это копия tracking.jsв кеше браузера. Когда браузер запрашивает, tracking.jsон получает 304 Not Modifiedответ, который заставляет его выполнить первую полученную версию tracking.js. tracking.jsвыполняет и восстанавливает то, SessionIDчто было удалено.

Проверка

Предположим, Haxor X крадет файлы cookie наших клиентов, пока они еще вошли в систему. Как мы защищаем их? Криптография и браузер снимают отпечатки пальцев на помощь. Запомните наше первоначальное определение SessionID:

BrowserID|ComputerID|randomBytes(256)

Мы можем изменить это на:

Timestamp|BrowserID|ComputerID|encrypt(randomBytes(256), hk)|sign(Timestamp|BrowserID|ComputerID|randomBytes(256), hk)

Где hk = sign(Timestamp|BrowserID|ComputerID, serverKey).

Теперь мы можем проверить наши, SessionIDиспользуя следующий алгоритм:

if( getTimestamp($sid) is older than 1 year ) return false;
if( getBrowserID($sid) !== createBrowserID($_Request, $_Server) ) return false;
if( getComputerID($sid) !== createComputerID($_Request, $_Server) return false;

$hk = sign(getTimestamp($sid) + getBrowserID($sid) + getComputerID($sid), $SERVER["key"]);

if( !verify(getTimestamp($sid) + getBrowserID($sid) + getComputerID($sid) + decrypt(getRandomBytes($sid), hk), getSignature($sid), $hk) ) return false;

return true; 

Теперь, чтобы атака Хаксора сработала, они должны:

  1. Есть же ComputerID. Это означает, что у них должен быть тот же поставщик услуг Интернета, что и у жертвы (Tricky). Это даст нашей жертве возможность подать в суд на свою страну. Haxor также должен получить ключ сеанса HTTPS от жертвы (Hard).
  2. Есть же BrowserID. Любой может подделать строку User-Agent (раздражает).
  3. Уметь создавать свои собственные подделки SessionID(Very Hard). Объемные атаки не будут работать, потому что мы используем временную метку для генерации ключа шифрования / подписи, так что в основном это похоже на генерацию нового ключа для каждой сессии. Кроме того, мы шифруем случайные байты, поэтому о простой атаке по словарю также не может быть и речи.

Мы можем улучшить проверку путем пересылки GoogleIDи FingerprintID(через ajax или скрытые поля) и сопоставления с ними.

if( GoogleID != getStoredGoodleID($sid) ) return false;
if( byte_difference(FingerPrintID, getStoredFingerprint($sid) > 10%) return false;
Автор: Walter Размещён: 10.01.2017 06:14

30 плюса

It's not possible to identify the computers accessing a web site without the cooperation of their owners. If they let you, however, you can store a cookie to identify the machine when it visits your site again. The key is, the visitor is in control; they can remove the cookie and appear as a new visitor any time they wish.

Автор: erickson Размещён: 19.10.2008 03:42

30 плюса

A possibility is using flash cookies:

  • Ubiquitous availability (95 percent of visitors will probably have flash)
  • You can store more data per cookie (up to 100 KB)
  • Shared across browsers, so more likely to uniquely identify a machine
  • Clearing the browser cookies does not remove the flash cookies.

You'll need to build a small (hidden) flash movie to read and write them.

Whatever route you pick, make sure your users opt IN to being tracked, otherwise you're invading their privacy and become one of the bad guys.

Автор: Joeri Sebrechts Размещён: 19.10.2008 04:10

21 плюса

You may want to try setting a unique ID in an evercookie (it will work cross browser, see their FAQs): http://samy.pl/evercookie/

There is also a company called ThreatMetrix that is used by a lot of big companies to solve this problem: http://threatmetrix.com/our-solutions/solutions-by-product/trustdefender-id/ They are quite expensive and some of their other products aren't very good, but their device id works well.

Finally, there is this open source jquery implementation of the panopticlick idea: https://github.com/carlo/jquery-browser-fingerprint It looks pretty half baked right now but could be expanded upon.

Hope it helps!

Автор: Brian Armstrong Размещён: 13.05.2012 06:29

20 плюса

There is a popular method called canvas fingerprinting, described in this scientific article: The Web Never Forgets: Persistent Tracking Mechanisms in the Wild. Once you start looking for it, you'll be surprised how frequently it is used. The method creates a unique fingerprint, which is consistent for each browser/hardware combination.

The article also reviews other persistent tracking methods, like evercookies, respawning http and Flash cookies, and cookie syncing.

More info about canvas fingerprinting here:

Автор: Per Quested Aronsson Размещён: 16.06.2015 07:22

10 плюса

There is only a small amount of information that you can get via an HTTP connection.

  1. IP - But as others have said, this is not fixed for many, if not most Internet users due to their ISP's dynamic allocation policies.

  2. Useragent String - Nearly all browsers send what kind of browser they are with every request. However, this can be set by the user in many browsers today.

  3. Collection of request fields - There are other fields sent with each request, such as supported encodings, etc. These, if used in the aggregate can help to ID a user's machine, but again are browser dependent and can be changed.

  4. Cookies - Setting a cookie is another way to identify a machine, or more specifically a browser on a machine, but as others have said, these can be deleted, or turned off by the users, and are only applicable on a browser, not a machine.

So, the correct response is that you cannot achieve what you would live via the HTTP over IP protocols alone. However, using a combination of cookies, as well as IP, and the fields in the HTTP request, you have a good chance at guessing, sort of, what machine it is. Users tend to use only one browser, and often from one machine, so this may be fairly relieable, but this will vary depending on the audience...techies are more likely to mess with this stuff, and use more machines/browsers. Additionally, this could even be coupled with some attempt to geo-locate the IP, and use that data as well. But in any case, there is no solution that will be correct all of the time.

Автор: cdeszaq Размещён: 19.10.2008 07:57

9 плюса

There are flaws with both cookie and non-cookie approaches. But if you can forgive the shortcomings of the cookie approach, here's an idea.

If you're already using Google Analytics on your site, then you don't need to write code to track unique users yourself. Google Analytics does that for you via the __utma cookie value, as described in Google's documentation. And by reusing this value you're not creating additional cookie payload, which has efficiency benefits with page requests.

And you could write some code easily enough to access that value, or use this script's getUniqueId() function.

Автор: Steve Wortham Размещён: 28.08.2012 03:18

8 плюса

As with the previous solutions cookies are a good method, be aware that they identify browsers though. If I visited a website in Firefox and then in Internet Explorer cookies would be stored for both attempts seperately. Some users also disable cookies (but more people disable JavaScript).

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

Автор: Ross Размещён: 19.10.2008 03:50

6 плюса

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

Автор: Danny Whitt Размещён: 20.10.2008 02:40

6 плюса

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

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

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

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

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

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

Автор: Anirvan Размещён: 28.10.2008 11:00

4 плюса

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

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

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

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

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

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

Автор: JohnnySoftware Размещён: 19.10.2008 05:32

3 плюса

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

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

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

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

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

Автор: different Размещён: 19.10.2008 03:49

3 плюса

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

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

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

Автор: Draemon Размещён: 19.10.2008 04:26

2 плюса

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

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

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

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

Автор: thatisvaliant Размещён: 20.10.2008 01:29

2 плюса

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

Автор: Eric Hogue Размещён: 05.11.2008 07:08

2 плюса

Вы можете использовать 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, поэтому даже если их отпечатки пальцев видоизменяются, вы все равно можете отслеживать их

Автор: Toolkit Размещён: 13.03.2018 08:49

1 плюс

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

Автор: Steve Размещён: 19.10.2008 03:36

0 плюса

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

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

Автор: John Nilsson Размещён: 19.10.2008 05:18

0 плюса

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

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

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

Я обязательно поделюсь, если найду, как это сделать.

Автор: Mr Programmer Размещён: 04.05.2013 05:04

0 плюса

Трюк:

  1. Создать 2 страницы регистрации:

    Первая страница регистрации: без электронной почты или проверки безопасности (только с именем пользователя и паролем)

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

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

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

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

Автор: Mahdi Jazini Размещён: 06.11.2016 01:36
Вопросы из категории :
32x32