Рекомендуемые настройки безопасности для 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.
Существует два варианта уменьшить потребление трафика:
- Выключить функцию (отрицательно для безопасности): поменять значение ключа
extensions.blocklist.enabled
установить значение вfalse
. - Увеличить интервал обновления: установить большее значение ключа
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.)
dom.disable_move_resize
=true
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
.