К основному содержимому
Все коллекцииFAQ
Браузерный отпечаток
Браузерный отпечаток
Обновлено вчера

User Agent


Что такое User Agent?


User agent — это любое программное обеспечение, которое взаимодействует с веб-серверами от имени пользователей Интернета. Его также можно рассматривать как мост между вами и Интернетом.

Любое программное обеспечение, которое отправляет веб-запросы на веб-серверы, является user agent, независимо от того, работает ли оно независимо от человеческого взаимодействия, как в случае с автоматизированными инструментами или ботами, или в случае с веб-браузерами и другим программным обеспечением, которое принимает прямые команды от людей.

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

В сетевом протоколе клиент рассматривается как user agent, который используется для общения с системой клиент-сервер. Вам может быть интересно, что ваш почтовый клиент является почтовым user agent.

User agents не ограничиваются этим — ваша игровая консоль может быть user agent, как и ваш смарт-ТВ и другие устройства с подключением к Интернету. В протоколе передачи гипертекста (HTTP) клиенты (user agents) идентифицируются с использованием заголовка user-agent.

Использование User Agents


Вам, возможно, интересно, почему клиентское программное обеспечение должно идентифицировать себя и для чего веб-серверам нужна эта информация? Оказывается, что у user agents есть два основных применения. Это включает в себя согласование контента и предоставление доступа или блокировку.

Согласование контента


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

Многие другие сайты в Интернете используют user-agent для предоставления лучшего пользовательского опыта. Без user-agent вам будет представлена общая версия страницы, которая может не отображаться должным образом на вашем браузере. Разработчики ботов используют это, чтобы обойти сайты с богатым JavaScript, используя агенты мобильных браузеров, что заставляет веб-серверы возвращать менее насыщенную JavaScript версию страницы.

Согласование доступа и блокировки


Наверное, самое популярное использование строки user-agent — это определение, имеет ли конкретное клиентское программное обеспечение право на доступ к определенному контенту. Веб-серверы используют строку user-agent в HTTP-заголовке запроса, чтобы исключить краулеры, скрейперы и другие боты от доступа к своей платформе.

Многие популярные веб-сайты в Интернете не приветствуют бот-трафик, и поэтому будут блокировать доступ для user-agent, отличных от популярных браузеров. Хотя они делают это внутренне, они могут предоставлять веб-краулерам сигналы через файл robots.txt и ожидать, что вы будете следовать указаниям в нем. Обычно веб-серверы хотят разрешить доступ только для трафика, исходящего от пользователей, и склонны блокировать трафик от автоматических источников, если только для них нет выгоды.

Cookie


Cookie, тип «маленького текстового файла», относится к данным (обычно зашифрованным), которые некоторые веб-сайты сохраняют на локальном терминале пользователя (на стороне клиента) для идентификации пользователя. Поскольку протокол HTTP является бессостоящим, то есть сервер не знает, что пользователь делал в прошлый раз, что сильно мешает реализации интерактивных веб-приложений. В типичном сценарии онлайн-покупок пользователь просматривает несколько страниц и покупает коробку печенья и две бутылки напитков. При окончательной оплате из-за бессостоящего характера HTTP сервер не знает, что пользователь купил, без дополнительных средств, поэтому cookies являются одним из «дополнительных средств», используемых для обхода бессостоящести HTTP. Сервер может устанавливать или читать информацию, содержащуюся в cookies, чтобы поддерживать состояние пользователя при общении с сервером.

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

Другим типичным применением cookies является процесс входа на сайт, когда сайт часто просит пользователя ввести имя пользователя и пароль, и пользователь может отметить «Автоматический вход в следующий раз». Если установлено, при следующем посещении того же сайта пользователь обнаружит, что он вошел, не вводя имя пользователя и пароль. Это как раз потому, что сервер отправил cookie, содержащий данные для входа (зашифрованную форму имени пользователя и пароля) на жесткий диск пользователя при предыдущем входе. При повторном входе, если cookie не истек, браузер отправит cookie, и сервер проверит учетные данные, чтобы пользователь мог войти без ввода имени пользователя и пароля.

Language


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

Resolution


Разрешение экрана — это четкость текста и изображений, отображаемых на экране. Чем больше монитор, тем выше разрешение, которое обычно поддерживается. Возможность увеличения разрешения зависит от размера и возможностей монитора и типа видеокарты. Технически говоря, «разрешение» — это количество пикселей на единицу площади, а не общее количество пикселей.

Timezone


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

Разница во времени между большинством часовых поясов на земле и Всемирным координированным временем (UTC) составляет целый час (UTC-11:00 (не занятый UTC-12:00) до UTC+14:00), но некоторые из них имеют смещение на 30 или 45 минут (например, стандартное время Ньюфаундленда — UTC-03:30, стандартное время Непала — UTC+05:45, стандартное время Индии — UTC+05:30 и стандартное время Мьянмы — UTC+06:30).

Audio


Audio API, предоставляемое HTML5 для программирования на JavaScript, позволяет разработчикам напрямую манипулировать исходными данными аудиопотока в коде, генерировать, обрабатывать и воспроизводить их произвольно, например, улучшать тон, изменять высоту тона и сегментировать аудио. Это можно назвать веб-версией Adobe Audition.

Принцип отпечатка AudioContext примерно следующий:

Метод 1: Генерация аудиопотока (треугольная волна), выполнение FFT-преобразования и расчет SHA значения как отпечатка.

Метод 2: Генерация аудиопотока (синусоидальная волна), выполнение динамической компрессии и расчет MD5 значения.

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

Основные принципы отпечатков AudioContext:

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

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

LocalStorage


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

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

С точки зрения безопасности, localStorage является безопасным в пределах домена, то есть localStorage привязан к домену. Любая страница в домене может получить доступ к данным localStorage. Но есть проблема: данные между браузерами разных производителей независимы. То есть, если вы используете localStorage для хранения данных в Firefox, эти данные не могут быть прочитаны в браузере Chrome. Точно так же, поскольку данные localStorage хранятся на устройстве пользователя, данные, сохраненные одним и тем же приложением на разных устройствах, будут различаться.

Geo


Geolocation API — это часть стандарта W3C HTML5, предоставляющая простой API JavaScript, который позволяет веб-сайтам запрашивать физическое местоположение, что потенциально может нарушить конфиденциальность пользователя. Этот тест Geolocation API предназначен для обеспечения того, чтобы информация о местоположении не была получена через этот API без вашего явного разрешения.

Fonts


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

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

Рендеринг текста — это тонкая и сложная часть веб-браузера. Даже в латинском алфавите компоновка текста — это не просто склеивание коробок: учитываются такие элементы, как лигатуры, кернинг и составные символы. Некоторые другие системы письма даже более сложны, что заставляет браузеры полагаться на библиотеки, предоставляемые операционной системой, для компоновки текста. Эти библиотеки, включая Pango на GNU/Linux, Graphics Device Interface (GDI) или DirectWrite на Windows и Core Text на Mac OS X, являются независимыми кодовыми базами и не ведут себя одинаково. Браузеры также накладывают собственные настройки на базовый рендеринг текста.

Canvas


Canvas является частью HTML5 и позволяет языкам сценариев динамически рисовать битовые изображения. Вы можете использовать язык программирования JavaScript для рисования на этом элементе. Обычные применения включают рисование графики и текста, обработку изображений, игры и анимацию.

WebGL


WebGL — это API JavaScript, используемое для рендеринга интерактивной 2D и 3D графики в любом совместимом веб-браузере без использования плагинов. WebGL полностью интегрирован во все стандарты веб-страниц браузера, и ускорение обработки изображений и эффектов с использованием GPU может быть частью веб-страницы Canvas. Элементы WebGL могут быть добавлены к другим HTML-элементам и смешаны с другими частями веб-страницы или фона веб-страницы. Программа WebGL состоит из обработчика, написанного на JavaScript, и кода шейдера, написанного на OpenGL Shading Language (GLSL), который похож на C или C++ и выполняется на графическом процессоре (GPU) компьютера.

WebRTC


WebRTC — это браузерный плагин, который обычно используется веб-приложениями, требующими быстрого прямого подключения. Поскольку WebRTC устанавливает соединение через протокол UDP, оно не проходит через прокси-серверы, которые могут быть использованы в браузере. Сайты могут использовать этот факт для раскрытия вашего реального публичного и локального IP-адреса, даже если вы используете прокси. Этот же плагин также может быть использован для раскрытия вашего локального IP-адреса или отслеживания ваших мультимедийных устройств.

Что раскрывает плагин WebRTC:

  • Публичный IP-адрес

  • Локальный IP-адрес

  • Номера и хеши мультимедийных устройств

Media devices


WebRTC — это браузерный плагин, который облегчает аудио и видеосвязь на веб-странице, позволяя прямое подключение между пирами без необходимости установки дополнительных плагинов или других нативных приложений. Чтобы плагин работал, WebRTC предоставляет доступ к вашим мультимедийным устройствам, таким как микрофоны, камеры и наушники. Сайты могут использовать этот механизм двумя способами:

  • Перечисление устройств

  • Отслеживание ID мультимедийных устройств

Do Not Track


Do Not Track (DNT) — это HTTP-заголовок. Когда пользователь включает эту функцию, браузер добавляет заголовок к передаваемым данным HTTP: dnt: 1. Этот заголовок сообщает серверу сайта, что пользователь не хочет быть отслеживаемым. Таким образом, сайты, соблюдающие эти правила, не будут отслеживать личную информацию пользователей для более точной рекламы.

SSL


Transport Layer Security (TLS) и его предшественник Secure Sockets Layer (SSL) — это протоколы безопасности, предназначенные для обеспечения безопасности и защиты целостности данных в Интернете. Когда Netscape выпустил первую версию веб-браузера Netscape Navigator в 1994 году, он представил протокол HTTPS с шифрованием SSL, который стал основой для SSL. IETF стандартизировал SSL и опубликовал стандарт TLS 1.0 (RFC 2246) в 1999 году. В дальнейшем были выпущены TLS 1.1 (RFC 4346, 2006), TLS 1.2 (RFC 5246, 2008) и TLS 1.3 (RFC 8446, 2018). Этот протокол широко используется в таких приложениях, как браузеры, электронная почта, мгновенные сообщения, VoIP и Интернет-факсы. Многие сайты, такие как Google, Facebook, Wikipedia и другие, используют этот протокол для создания защищенных соединений и передачи информации. Это стал стандартом отрасли для конфиденциальных коммуникаций в Интернете.

SSL включает слой записи и транспортный слой. Протокол слоя записи определяет формат инкапсуляции данных транспортного слоя. Протокол безопасности транспортного слоя использует аутентификацию X.509, а затем использует асимметричное шифрование для аутентификации сторон общения и обмена симметричным ключом, который используется для шифрования данных, обменяемых двумя сторонами, обеспечивая конфиденциальность и надежность связи между двумя приложениями, чтобы предотвратить подслушивание общения между клиентом и сервером.


Нужна дополнительная помощь? Свяжитесь с нами:


Нашли ответ на свой вопрос?