Рекомендуемые настройки безопасности для Firefox

Обновление от 11.06.19

Данный материал немного устарел и лучше пользоваться готовым user.js скриптом с комментариями из репозитория firefox_private_profile.

О документе

Данный документ взят с сайта pgpru.com. По каким-то причинам данная статья исчезла на сайте и нашлась лишь в кеше гугла.

Внимание, некоторые переменные about:config могут быть устаревшими в новых версиях Firefox, но большинство параметров до сих пор доступно и их следует поменять для вашей безопасности.

Рекомендуемые настройки

Если вы видите, что какая-то опция стоит в нужном вам значении, помните: поставить ее могло и дополнение. Даже если она стоит по умолчанию, в очередной версии Firefox вполне могут поменяться опции по умолчанию.

Открыть страницу настроек Firefox можно набрав в адресной строке: about:config.

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

Помните! Блокировка некоторых опций позволяет выделить вас из массы пользователей путем отслеживания реакций браузера. Поэтому изменять их при использовании TorBrowser или другой подобной сборки нужно обдуманно и с пониманием.

Если нужно отредактировать большое количество настроек и использовать их на других компьютерах, то удобнее использовать файл user.js. Подробнее: тут.

Примечание: Существуют “скрытые” настройки, если вы введете имя такой настройки в фильтре страницы about:config ничего не отобразится, хотя такая настройка может существовать. Чтобы её изменить нужно создать её из контекстного меню страницы about:config.

Обновление списков неблагонадежных сайтов

Если эта защита не нужна, ее можно отключить через “Настройки” -> “Защита” -> “Информировать, не подозревается ли посещаемый веб-сайт в имитации другого веб-сайта” и “Информировать, не подозревается ли посещаемый веб-сайт в атаках на компьютеры”.

Так же это можно сделать через страницу настроек:

browser.safebrowsing.enabled

и

browser.safebrowsing.malware.enabled

в about:config должны иметь значение false.

Отключение встроенной проверки обновлений

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

Проверку обновлений можно отключить через “Настройки” > “Дополнительно” > “Обновления”.

Дополнительный канал потребления/генерации трафика — это окно поиска дополнений. Убрать пункт “Получить дополнения” можно с помощью стилей.

Стиль:

/* Скрывает пункт "Получить дополнения" в меню дополнений (расширений) */

/* Применять стиль к интерфейсу браузера */
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

/* Скрыть пункт "Получить дополнения" в меню дополнений (расширений)*/
#category-discover {
    display:none !important;
}

Отключение автоподстановки поисковых запросов в окне поиска

browser.search.suggest.enabled установить значение в false.

Показывать (не показывать) пароль при использовании альтернативного URL

Т.е. при введении адреса:

http://user:password@website показывать (значение true) — http://user:password@(prefix)website(suffix)

или (значение false) — http://user@(prefix)website(suffix)

browser.fixup.hide_user_pass установить значение в false или true, на ваше усмотрение.

Отключение автозавершение нестандартных адресов (авто подстановки суффиксов/префиксов)

Предотвращение случайного набора неправильного адреса.

browser.fixup.alternate.enabled установить значение в false.

Отключение проверки закачиваемых файлов антивирусом

browser.download.manager.scanWhenDone установить значение в false.

Отключение поиска из строки адреса

keyword.enabled установить значение в false.

Отключение геолокации

Найдите при помощи опции «Фильтр», а затем отредактируйте следующую строку:

geo.enabled установить значение в false [нажмите на строке правой кнопкой и выберите «переключить»]

Принудительное транслирование dns-запросов через прокси

Полезно, например при работе с TOR, чтобы обойти обращения к DNS провайдера.

network.proxy.socks_remote_dns установить значение в true.

Отключение пинг-трэкинга

Пинг-трэкинг позволяет серверу легко отслеживать действия пользователя.

В спецификации HTML5 введен новый атрибут тега , ping. Атрибут может содержать один (или больше) адрес для пинга (отправки POST запроса к) после клика по ссылке. Атрибут может использоваться для отслеживания действий посетителей. Подробнее: http://kb.mozillazine.org/Browser.send_pings

Отправлять POST запросы или игнорировать атрибут ping (значения true и false соответственно):

browser.send_pings установить значение в false

Отключение предзагрузки ресурсов

Если включена эта опция, ресурсы, помеченные rel="prefetch", браузер автоматически предзагружает и кэширует после окончания загрузки текущей страницы. Можно также отправить заголовок Link: <http://example.com>; rel=prefetch или сделать то же самое через meta-тег: <meta http-equiv="Link" content="<http://example.com>; rel=prefetch">

Рекомендуется отключить для предотвращения утечки трафика, также, возможно, имеется угроза атаки.

Значение false – отключение предзагрузки.

network.prefetch-next установить значение в false.

Так-же полезно отключить предзагрузку при использовании строки поиска.

network.http.speculative-parallel-limit установить значение в 0.

Обновление списка заблокированных дополнений

Внимание! Эту опцию не рекомендуется отключать. Эта опция описана в целях ознакомления, чтобы исключить вопросы по утечки трафика. В Firefox и некоторые другие продукты Mozilla встроен черный список для вредоносных и неисправных дополнений. Обновляется он автоматически, с серверов Mozilla.

Существует два варианта уменьшить потребление трафика:

  1. Выключить функцию (отрицательно для безопасности): поменять значение ключа extensions.blocklist.enabled установить значение в false.
  2. Увеличить интервал обновления: установить большее значение ключа extensions.blocklist.interval (в секундах).

Отключение упреждающего чтения DNS

Эта опция позволяет Firefox запрашивать DNS для каждой ссылки на странице (на всякий случай, если вы решите ее нажать).

network.dns.disablePrefetch установить значение в true

Существует опция network.dns.disablePrefetchFromHTTPS по умолчанию она отключена (установлена в true).

Загрузка шрифтов

css правило @font-face позволяет определить настройки шрифтов, а также загрузить специфичный шрифт на компьютер пользователя.

Существует вероятность отличить пользователя по загрузке/не загрузке шрифтов. За загрузку шрифтов отвечают опции:

browser.display.use_document_fonts gfx.downloadable_fonts.enabled gfx.downloadable_fonts.fallback_delay gfx.downloadable_fonts.sanitize

Внимание: Если вы имеете описание какой-то из этих опций, просьба поделиться.

Внимание: Отключение/включение gfx.downloadable_fonts.enabled не имеет особого значения, так как и по отключению, и по включению можно получить некоторые данные о пользователе. Установите их на свое усмотрение и по ситуации.

Примечание: Удобный контроль возможен с помощью дополнения NoScript.

Блокировка загрузки незащищённого содержимого на HTTPS-страницах

(Осторожно. Может нарушиться функционал страницы)

Появилась в Firefox 18 и выше. Отключённая по умолчанию. Для её включения установите параметры:

security.mixed_content.block_active_content

и

security.mixed_content.block_display_content

в true.

API (application programming interfaces)

API – набор функций браузера которые можно вызывать кодом страницы.

Отключение Network API

Позволяет определить параметры соединение пользователя с сетью.

dom.network.enabled установить значение в false.

Отключение Battery API

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

dom.battery.enabled установить значение в false.

Отключение Social API

API для интеграции социальных сетей с Firefox.

social.enabled установить значение в false.

Отключение Vibration API

Позволяет использовать вибрацию, если на устройстве установлен вибромотор. Звук или вибрация от него может привлечь внимание.

dom.vibrator.enabled установить значение в false.

JavaScript

Кроме описанного ниже дополнительные настройки есть в меню “Инструменты” (или “Правка” для linux) -> “Настройка” -> “Содержимое” -> “Дополнительно”.

Описаны только опции, которые могут повлиять на безопасность.

Значения соответствуют:

true — да. false — нет.

Если параметра нет, то создать (для true / false тип создаваемого значения — логический (boolean)). Значение true / false, если не указано дополнительно.

Разрешать ли скриптам закрывать окна?

dom.allow_scripts_to_close_windows = true

Запрещать ли скриптам сворачивать/разворачивать окна?

dom.disable_window_flip = true

Запрещать ли скриптам изменять размер окон или перемещать их?

(предположительно название в новых версиях Firefox изменилось c 1. на 2.)

  1. dom.disable_move_resize = true
  2. dom.disable_window_move_resize = true

Запрещать ли скриптам отключать кнопку close (закрыть) у окон?

dom.disable_window_open_feature.close = true

Запрещать ли скриптам открывать/закрывать панель закладок?

dom.disable_window_open_feature.directories = true

Запрещать ли скриптам отключать строку адреса?

dom.disable_window_open_feature.location = true

Запрещать ли скриптам скрывать панель меню?

dom.disable_window_open_feature.menubar = true

Запрещать ли скриптам отключать кнопку minimize (свернуть) у окон?

dom.disable_window_open_feature.minimizable = true

Запрещать ли скриптам скрывать персональные панели инструментов окна?

(иначе, например, дополнения могут самовольно использовать это)

dom.disable_window_open_feature.personalbar = true

Запрещать ли скриптам отключать возможность изменения размера окна?

dom.disable_window_open_feature.resizable = true

Запрещать ли скриптам скрывать полосы прокрутки?

dom.disable_window_open_feature.scrollbars = true

Запрещать ли скриптам скрывать панель состояния?

dom.disable_window_open_feature.status = true

Запрещать ли скриптам скрывать заголовок окна?

dom.disable_window_open_feature.titlebar = true

Запрещать ли менять текст в панели состояния?

dom.disable_window_status_change = true

Запрещать ли скриптам скрывать панель инструментов?

dom.disable_window_open_feature.toolbar = true

Разрешать ли скриптам доступ к событию контекстного меню?

(отключение может нарушить функционал online редакторов, например)

dom.event.contextmenu.enabled = true

Разрешать ли скриптам доступ к буферу обмена? (изменять скопированный текст, блокировать копирование)

dom.event.clipboardevents.enabled = true

Запрещать ли изменять скриптам имя хоста в строке адреса?

(сейчас многие flash-сайты используют эту функцию, для навигации по сайту)

dom.disable_location.hostname.set = true

Отключить изменение стиля посещенных ссылок

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

layout.css.visited_links_enabled поставить в false

Ранее существовал баг, закрыт теперь http://www.opennet.ru/opennews/art.shtml?num=26038

Но возможно отключение этой опции будет актуально для других аттак: http://www.xakep.ru/post/61044/
https://bugzilla.mozilla.org/show_bug.cgi?id=711043 — описание бага.

Отключение WebRTC

WebRTC позволяет просмотреть внутренний IP за NAT или VPN. Для отключения:

media.peerconnection.enabled установить значение в false.

Подробнее:
/article/disable-unsecure+webrtc-in-browsers/
https://hacks.mozilla.org/2013/02/hello-chrome-its-firefox-calling/
https://wiki.mozilla.org/Media/WebRTC

Отключение предупреждений о закрытии нескольких вкладок

Предупреждение может замедлить экстренный выход из Firefox.

browser.tabs.warnOnClose в false — предупреждение при закрытии вкладок. browser.warnOnQuit в false — предупреждение при закрытии окна.

Отключение SPDY

SPDY может хранить идентификатор и держит экстремально долгое открытое соединение.

network.http.spdy.enabled в false.