Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

privacy.resistFingerprinting #38

Closed
dartraiden opened this issue Sep 27, 2015 · 10 comments
Closed

privacy.resistFingerprinting #38

dartraiden opened this issue Sep 27, 2015 · 10 comments

Comments

@dartraiden
Copy link
Contributor

На ру-борде упомянули, что якобы поддерживается настройка privacy.resistFingerprinting (не существующая по умолчанию), присвоение которой значения "true" блокирует определение сайтами размеров окна браузера с учётом баров и панелей. Таким образом, сайты могут определить лишь полный размер окна.

Есть идеи, где это можно потестировать на предмет "фейк/не фейк"?
В https://mxr.mozilla.org/mozilla-central/source/modules/libpref/init/all.js я такой настройки не обнаружил.

@The-OP
Copy link
Owner

The-OP commented Sep 29, 2015

Да, в исходниках упоминается вроде. Проверить можно на ip-check.info. Или прямо из консоли: window.screen.width, window.outerHeight и т.п.

Кстати, эти штуки (и window.name) можно подделывать при помощи UserJS с @run-at document-start (Random Agent Spoofer, собственно, тоже инжектирует свой скрипт в начале загрузки страницы). Правда осмысленность подделки размеров именно окна находится под вопросом - скрипт может и по косвенным признакам понять, что его надувают.

Еще на ip-check почему-то рекомендуют делать inner size равным outer. Это лучше чем ничего, но наверное хуже чем, скажем, стандартным для заголовков и тубаров в самой распространенной Винде.

@firefoxForUser
Copy link

The-OP,
А почему вы так напираете на подмену user agent? Идея конечно интересная, но на практике она работает только для сайтов, которые специально показывают контент только определённым браузерам. То есть сайтам непрофессиональным и откровенно плохо написанным.

Это много раз обсуждалось на многих форумах.
Получается, что даже при парсинге некоторых свойств (например даты в текст) разные браузеры ведут себя по разному (видел где-то пример). Тоже касается и некоторых новшеств в js, которые могут быть в одних браузерах и не бытьв других.
Так что настоящую версию и модель можно определить даже не касаясь специальных свойств описывающих браузер. И множество других мелких нюансов из-за которых собственно в Tor Project и выбрали маскировку под ВЕРСИЮ определенной МОДЕЛИ браузера, а не нечто случайное.

Так что выходит так, что эффект подмена user agent имеет только при при отключённом js. Но при отключенном js достаточно подменить строку user agent из about:config.
Но даже в этом случае можно для определения версии использовать css свойства, которые появляются с каждой новой версией браузера и в разных браузерах они разные, в том числе с приставкой -moz или просто работающие чуть по другому (например могут иметь разные размеры отступов по умолчанию).
Банальный сценарий: скрываем спец свойствами или сдвигаем за пределы экрана (используя разные размеры полей разных свойств) кнопку. Пользователь в разных браузерах увидит разные кнопки. Тоже можно проделать с разрешением экрана, когда каждому разрешению показывается своя кнопка и клик по ней отправляет текущий размер экрана. Ещё проще: подключаем каждому разрешению свою фоновую картинку элементам, смотрим лог запросов серверу и сопоставляем по ip/времени.

Я хочу сказать, что утверждать в описании дополнений можно только то, что оно ЧАСТИЧНО препятствует фингерпринтингу. И человек, который хотя бы немного почитал доки на официальных сайтах играючи определит user agent пользователя даже с отключенным js (если конечно пользователь будет взаимодействовать с сайтом).

К слову UAControl позволяет назначить подмену user agent по шаблонам для ссылок и назначить каждому разные подмены. Лучше чем User Agent Switcher.

Ещё к слову. Чтобы размер окна не определялся с учетом баров и панелей достаточно назначить любому бару/панели position:fixed. Что я собственно и написал когда-то в запросах на фичи в Tor Project. :) Из проблем при таком там мелочи, несколько кнопок на самих барах может чуть сдвинуться, пофиксить - пара сек.

Ещё к слову. Для панелей в Firefox обычно используется -mox-box, что лично мне не нравится.

@The-OP
Copy link
Owner

The-OP commented Oct 1, 2015

Я ни на что не напираю.

@firefoxForUser
Copy link

Значит мне показалось.

@dartraiden
Copy link
Contributor Author

Потестировал. На актуальной 46-версии никакого влияния не оказывает, судя по всему. ip-check.info успешно определил как разрешение экрана, так и размер видимой области страницы.

@The-OP
Copy link
Owner

The-OP commented Jul 3, 2016

Теперь - оказывает.
c1d02ae

@The-OP The-OP closed this as completed Aug 6, 2016
@h8nor
Copy link

h8nor commented Sep 3, 2018

С выключенным параметрам дополнительно показывает SSL_session_id, Plugins, Mime types. Блокирует отпечатки, но не блокирует размеры окна. Существует ли другая настройка?

@dartraiden
Copy link
Contributor Author

КМК, размеры окна грамотно проспуфить/заблокировать очень трудно, потому что их можно получить разными способами. В TorBrowser неспроста размер окна зафиксирован и его не рекомендуется менять.

@h8nor
Copy link

h8nor commented Sep 3, 2018

@dartraiden, благодарю. Теперь понял, что патчи -- это не user.js

@dartraiden
Copy link
Contributor Author

dartraiden commented Sep 3, 2018

Патчи это патчи на код, да. Их накладывают перед сборкой. user.js - это настройки.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants