Доброго времени суток, юзернейм! В последнее время браузер Firefox претерпевал достаточно значительные изменения, хорошие и не очень: это и переход на движок Quantum, это и отказ от расширений типа XUL/XPCOM, и переход на WebExtensions, и еще масса других изменений. Что никак не изменилось — это возможность сделать из него прекрасный хакерский браузер, если немного покрутить конфиги. Как и что крутить, мы обсудим в этой статье, погнали.
Создание «портативных» настроек
Все интересные настройки Firefox делаются на служебной странице по адресу about:config. Зайти сюда и поменять пару параметров — легко и удобно. Но если говорить о тонкой настройке, то тут менять значения по одному становится слегка утомительно.
Как автоматизировать процесс, не прибегая к сторонним утилитам? Очень просто: создавай файлuser.jsи прописывай все настройки туда. Далее помещаем этот файл в каталог пользовательского профиля Firefox, который в Windows находится по путиC:Users[username]AppDataRoamingMozillaFirefoxProfiles[random].default. Формат записей в этом файле прост: например, чтобы включить поддержку WebP, необходимо задать параметру image.webp.enabled значение true. В файле настроек это будет выглядеть вот так:
user_pref("image.webp.enabled", true);
Другими словами, в шаблонеuser_pref("...", …);идет параметр и его значение. Итак, с файлом настроек разобрались, теперь приступим к препарированию браузера. Все настройки применялись к последней на момент написания статьи версии браузера.
Учитывай, что безопасность и приватность — это всегда компромисс с удобством. Некоторые настройки могут значительно ограничить функциональность сайтов, но сильно увеличить безопасность и приватность при серфинге. А что важнее — выбирать тебе.
Отключаем все лишнее
WebRTC и Pocket
Mozilla внедрила сервисы WebRTC и Pocket в Firefox и включила их по умолчанию. Многим это не понравилось, и не просто так: в Pocket нашли уязвимости, а WebRTC может допускать утечку IP-адреса при определенных обстоятельствах.
Давай отключим и то, и другое:
// Отключаем Pocket
user_pref("extensions.pocket.api", "");
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.pocket.site", "");
user_pref("extensions.pocket.oAuthConsumerKey", "");
// Отключаем WebRTC
user_pref("media.peerconnection.enabled", false);
user_pref("media.peerconnection.ice.default_address_only", true);
user_pref("media.peerconnection.ice.no_host", true);
user_pref("media.peerconnection.ice.relay_only", true);
user_pref("media.peerconnection.ice.tcp", false);
user_pref("media.peerconnection.identity.enabled", false);
user_pref("media.peerconnection.turn.disable", true);
user_pref("media.peerconnection.use_document_iceservers", false);
user_pref("media.peerconnection.video.enabled", false);
user_pref("media.peerconnection.default_iceservers", "[]");
Геолокация
Отключаем доступ к геолокации:
user_pref("geo.enabled", false);
user_pref("geo.provider.ms-windows-location", false);
user_pref("geo.wifi.uri", "");
Статистика использования браузера и различные метрики
Перекрываем сбор различных данных:
// Отключаем асинхронные запросы, используемые для аналитики
user_pref("beacon.enabled", false);
user_pref("browser.send_pings", false);
user_pref("browser.send_pings.require_same_host", false);
// Отключаем метрики производительности
user_pref("dom.enable_performance", false);
user_pref("dom.enable_performance_observer", false);
user_pref("dom.enable_performance_navigation_timing", false);
user_pref("browser.slowStartup.notificationDisabled", false);
user_pref("network.predictor.enabled", false);
user_pref("network.predictor.enable-hover-on-ssl", false);
user_pref("network.prefetch-next", false);
user_pref("network.http.speculative-parallel-limit", 0);
// Информация об установленных дополнениях
user_pref("extensions.getAddons.cache.enabled", false);
Отключаем доступ к датчикам
Если в наличии обычный ПК, а не планшет (к примеру), то выключаем доступ к датчикам:
user_pref("device.sensors.enabled", false);
user_pref("device.sensors.orientation.enabled", false);
user_pref("device.sensors.motion.enabled", false);
user_pref("device.sensors.proximity.enabled", false);
user_pref("device.sensors.ambientLight.enabled", false);
Останавливаем фингерпринтинг
Эти настройки говорят браузеру сопротивляться идентификации:
user_pref("dom.webaudio.enabled", false);
user_pref("privacy.resistFingerprinting", true);
Перекрываем информацию о сетевом соединении:
user_pref("dom.netinfo.enabled", false);
user_pref("dom.network.enabled", false);
Отключаем использование устройств и передачу медиа
Отключаем использование через браузер камер, микрофонов, геймпадов, очков виртуальной реальности и вместе с устройствами — передачу различного медиаконтента, типа скриншотов и прочего.
Так же выключаем распознавание речи:
user_pref("dom.gamepad.enabled", false);
user_pref("dom.gamepad.non_standard_events.enabled", false);
user_pref("dom.imagecapture.enabled", false);
user_pref("dom.presentation.discoverable", false);
user_pref("dom.presentation.discovery.enabled", false);
user_pref("dom.presentation.enabled", false);
user_pref("dom.presentation.tcp_server.debug", false);
user_pref("media.getusermedia.aec_enabled", false);
user_pref("media.getusermedia.audiocapture.enabled", false);
user_pref("media.getusermedia.browser.enabled", false);
user_pref("media.getusermedia.noise_enabled", false);
user_pref("media.getusermedia.screensharing.enabled", false);
user_pref("media.navigator.enabled", false);
user_pref("media.navigator.video.enabled", false);
user_pref("media.navigator.permission.disabled", true);
user_pref("media.video_stats.enabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.vibrator.enabled", false);
user_pref("dom.vr.require-gesture", false);
user_pref("dom.vr.poseprediction.enabled", false);
user_pref("dom.vr.openvr.enabled", false);
user_pref("dom.vr.oculus.enabled", false);
user_pref("dom.vr.oculus.invisible.enabled", false);
user_pref("dom.vr.enabled", false);
user_pref("dom.vr.test.enabled", false);
user_pref("dom.vr.puppet.enabled", false);
user_pref("dom.vr.osvr.enabled", false);
user_pref("dom.vr.external.enabled", false);
user_pref("dom.vr.autoactivate.enabled", false);
user_pref("media.webspeech.synth.enabled", false);
user_pref("media.webspeech.test.enable", false);
user_pref("media.webspeech.synth.force_global_queue", false);
user_pref("media.webspeech.recognition.force_enable", false);
user_pref("media.webspeech.recognition.enable", false);
Отключаем телеметрию и отправку отчетов
Браузер собирает телеметрические данные и сигнализирует разработчикам о падениях компонентов.
Для повышения анонимности это можно отключить:
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.bhrPing.enabled", false);
user_pref("toolkit.telemetry.cachedClientID", "");
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
user_pref("toolkit.telemetry.hybridContent.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
user_pref("toolkit.telemetry.previousBuildID", "");
user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
user_pref("toolkit.telemetry.server", "");
user_pref("toolkit.telemetry.server_owner", "");
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.updatePing.enabled", false);
user_pref("datareporting.healthreport.infoURL", "");
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("datareporting.policy.firstRunURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.tabs.crashReporting.email", false);
user_pref("browser.tabs.crashReporting.emailMe", false);
user_pref("breakpad.reportURL", "");
user_pref("security.ssl.errorReporting.automatic", false);
user_pref("toolkit.crashreporter.infoURL", "");
user_pref("network.allow-experiments", false);
user_pref("dom.ipc.plugins.reportCrashUR", false);
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
Настраиваем информацию для поиска
Приводим поиск браузера в «стандартное» состояние — без поправок на наше местоположени:
user_pref("browser.search.geoSpecificDefaults", false);
user_pref("browser.search.geoSpecificDefaults.url", "");
user_pref("browser.search.geoip.url", "");
user_pref("browser.search.region", "US");
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.search.update", false);
Разбираемся с пуш-уведомлениями
Пуш-уведомления могут работать даже тогда, когда ты закрыл страницу:p>
Создание «портативных» настроек
Все интересные настройки Firefox делаются на служебной странице по адресу about:config. Зайти сюда и поменять пару параметров — легко и удобно. Но если говорить о тонкой настройке, то тут менять значения по одному становится слегка утомительно.
Как автоматизировать процесс, не прибегая к сторонним утилитам? Очень просто: создавай файлuser.jsи прописывай все настройки туда. Далее помещаем этот файл в каталог пользовательского профиля Firefox, который в Windows находится по путиC:Users[username]AppDataRoamingMozillaFirefoxProfiles[random].default. Формат записей в этом файле прост: например, чтобы включить поддержку WebP, необходимо задать параметру image.webp.enabled значение true. В файле настроек это будет выглядеть вот так:
user_pref("image.webp.enabled", true);
Другими словами, в шаблонеuser_pref("...", …);идет параметр и его значение. Итак, с файлом настроек разобрались, теперь приступим к препарированию браузера. Все настройки применялись к последней на момент написания статьи версии браузера.
Учитывай, что безопасность и приватность — это всегда компромисс с удобством. Некоторые настройки могут значительно ограничить функциональность сайтов, но сильно увеличить безопасность и приватность при серфинге. А что важнее — выбирать тебе.
Отключаем все лишнее
WebRTC и Pocket
Mozilla внедрила сервисы WebRTC и Pocket в Firefox и включила их по умолчанию. Многим это не понравилось, и не просто так: в Pocket нашли уязвимости, а WebRTC может допускать утечку IP-адреса при определенных обстоятельствах.
Давай отключим и то, и другое:
// Отключаем Pocket
user_pref("extensions.pocket.api", "");
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.pocket.site", "");
user_pref("extensions.pocket.oAuthConsumerKey", "");
// Отключаем WebRTC
user_pref("media.peerconnection.enabled", false);
user_pref("media.peerconnection.ice.default_address_only", true);
user_pref("media.peerconnection.ice.no_host", true);
user_pref("media.peerconnection.ice.relay_only", true);
user_pref("media.peerconnection.ice.tcp", false);
user_pref("media.peerconnection.identity.enabled", false);
user_pref("media.peerconnection.turn.disable", true);
user_pref("media.peerconnection.use_document_iceservers", false);
user_pref("media.peerconnection.video.enabled", false);
user_pref("media.peerconnection.default_iceservers", "[]");
Геолокация
Отключаем доступ к геолокации:
user_pref("geo.enabled", false);
user_pref("geo.provider.ms-windows-location", false);
user_pref("geo.wifi.uri", "");
Статистика использования браузера и различные метрики
Перекрываем сбор различных данных:
// Отключаем асинхронные запросы, используемые для аналитики
user_pref("beacon.enabled", false);
user_pref("browser.send_pings", false);
user_pref("browser.send_pings.require_same_host", false);
// Отключаем метрики производительности
user_pref("dom.enable_performance", false);
user_pref("dom.enable_performance_observer", false);
user_pref("dom.enable_performance_navigation_timing", false);
user_pref("browser.slowStartup.notificationDisabled", false);
user_pref("network.predictor.enabled", false);
user_pref("network.predictor.enable-hover-on-ssl", false);
user_pref("network.prefetch-next", false);
user_pref("network.http.speculative-parallel-limit", 0);
// Информация об установленных дополнениях
user_pref("extensions.getAddons.cache.enabled", false);
Отключаем доступ к датчикам
Если в наличии обычный ПК, а не планшет (к примеру), то выключаем доступ к датчикам:
user_pref("device.sensors.enabled", false);
user_pref("device.sensors.orientation.enabled", false);
user_pref("device.sensors.motion.enabled", false);
user_pref("device.sensors.proximity.enabled", false);
user_pref("device.sensors.ambientLight.enabled", false);
Останавливаем фингерпринтинг
Эти настройки говорят браузеру сопротивляться идентификации:
user_pref("dom.webaudio.enabled", false);
user_pref("privacy.resistFingerprinting", true);
Перекрываем информацию о сетевом соединении:
user_pref("dom.netinfo.enabled", false);
user_pref("dom.network.enabled", false);
Отключаем использование устройств и передачу медиа
Отключаем использование через браузер камер, микрофонов, геймпадов, очков виртуальной реальности и вместе с устройствами — передачу различного медиаконтента, типа скриншотов и прочего.
Так же выключаем распознавание речи:
user_pref("dom.gamepad.enabled", false);
user_pref("dom.gamepad.non_standard_events.enabled", false);
user_pref("dom.imagecapture.enabled", false);
user_pref("dom.presentation.discoverable", false);
user_pref("dom.presentation.discovery.enabled", false);
user_pref("dom.presentation.enabled", false);
user_pref("dom.presentation.tcp_server.debug", false);
user_pref("media.getusermedia.aec_enabled", false);
user_pref("media.getusermedia.audiocapture.enabled", false);
user_pref("media.getusermedia.browser.enabled", false);
user_pref("media.getusermedia.noise_enabled", false);
user_pref("media.getusermedia.screensharing.enabled", false);
user_pref("media.navigator.enabled", false);
user_pref("media.navigator.video.enabled", false);
user_pref("media.navigator.permission.disabled", true);
user_pref("media.video_stats.enabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.vibrator.enabled", false);
user_pref("dom.vr.require-gesture", false);
user_pref("dom.vr.poseprediction.enabled", false);
user_pref("dom.vr.openvr.enabled", false);
user_pref("dom.vr.oculus.enabled", false);
user_pref("dom.vr.oculus.invisible.enabled", false);
user_pref("dom.vr.enabled", false);
user_pref("dom.vr.test.enabled", false);
user_pref("dom.vr.puppet.enabled", false);
user_pref("dom.vr.osvr.enabled", false);
user_pref("dom.vr.external.enabled", false);
user_pref("dom.vr.autoactivate.enabled", false);
user_pref("media.webspeech.synth.enabled", false);
user_pref("media.webspeech.test.enable", false);
user_pref("media.webspeech.synth.force_global_queue", false);
user_pref("media.webspeech.recognition.force_enable", false);
user_pref("media.webspeech.recognition.enable", false);
Отключаем телеметрию и отправку отчетов
Браузер собирает телеметрические данные и сигнализирует разработчикам о падениях компонентов.
Для повышения анонимности это можно отключить:
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.bhrPing.enabled", false);
user_pref("toolkit.telemetry.cachedClientID", "");
user_pref("toolkit.telemetry.firstShutdownPing.enabled", false);
user_pref("toolkit.telemetry.hybridContent.enabled", false);
user_pref("toolkit.telemetry.newProfilePing.enabled", false);
user_pref("toolkit.telemetry.previousBuildID", "");
user_pref("toolkit.telemetry.reportingpolicy.firstRun", false);
user_pref("toolkit.telemetry.server", "");
user_pref("toolkit.telemetry.server_owner", "");
user_pref("toolkit.telemetry.shutdownPingSender.enabled", false);
user_pref("toolkit.telemetry.unified", false);
user_pref("toolkit.telemetry.updatePing.enabled", false);
user_pref("datareporting.healthreport.infoURL", "");
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("datareporting.policy.firstRunURL", "");
user_pref("browser.tabs.crashReporting.sendReport", false);
user_pref("browser.tabs.crashReporting.email", false);
user_pref("browser.tabs.crashReporting.emailMe", false);
user_pref("breakpad.reportURL", "");
user_pref("security.ssl.errorReporting.automatic", false);
user_pref("toolkit.crashreporter.infoURL", "");
user_pref("network.allow-experiments", false);
user_pref("dom.ipc.plugins.reportCrashUR", false);
user_pref("dom.ipc.plugins.flash.subprocess.crashreporter.enabled", false);
Настраиваем информацию для поиска
Приводим поиск браузера в «стандартное» состояние — без поправок на наше местоположени:
user_pref("browser.search.geoSpecificDefaults", false);
user_pref("browser.search.geoSpecificDefaults.url", "");
user_pref("browser.search.geoip.url", "");
user_pref("browser.search.region", "US");
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.search.update", false);
Разбираемся с пуш-уведомлениями
Пуш-уведомления могут работать даже тогда, когда ты закрыл страницу:p>