Вот сайт http://webkay.robinlinus.com/. Он использует множество трюков, чтобы обмануть вас. Он находит много, мне было любопытно.

Давайте взглянем.

Прежде всего, если вы используете блокировщик скриптов, такой как NoScript или ScriptSafe, это хорошо для вас. Ни одна из этих вещей не будет работать без белого списка.

Первая часть информации — это ваше местоположение.

Он использует Google GeoLocation API. Вы можете обмануть его, используя прокси, но он использует некоторые подлые умные вещи, чтобы угадать ваше местоположение. Это в значительной степени учитывая, что Google знает все.

Следующий раздел ищет ваше программное обеспечение.

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

Вы можете попробовать это сами в консоли инструментов разработчика.

>var parser = new UAParser();
>console.log(parser.getOS())
Object {name: "Mac OS", version: "10.12.0"}
>console.log(parser.getBrowser().name)
Chrome

Затем он показывает вам обнаруженное оборудование.

>console.log(navigator.platform)
MacIntel
>console.log(navigator.hardwareConcurrency)
4

В следующем разделе показана скорость соединения и локальный IP-адрес.

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

Далее идет проверка социальных сетей.

Глядя на scripts/social-media.js, похоже, что он пытается загрузить значок с разных сайтов, и в зависимости от того, загружается он или нет, он может определить, вошли ли вы в систему.

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

Я нашел еще несколько вещей, которые вы можете увидеть в браузере. Небольшой javascriptlet ниже создаст всплывающее окно с текущим уровнем заряда батареи.

navigator.getBattery().then(function(battery) {
    function battInfo() {
        updateLevelInfo();
    }
 battInfo();
    battery.addEventListener('levelchange', function(){
        updateLevelInfo();
        });
 function updateLevelInfo(){
  alert("batt lev: " + battery.level * 100 + "%");
    }
    });

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

Спасибо.