How to Enable JavaScript in Your Browser
This is an exciting time, as the usage of JavaScript has changed from a limited knowledge subject to a significant web development skill over the past few years. Today, JavaScript has become so indispensable to the web that most internet browsers implement a dedicated engine just to run it.
JavaScript is a wonderful technology to use on the web, and disabling it for all websites on your browser is never recommended. Most popular websites are JavaScript based, which means they make use of JavaScript to run interactive features that provide an enjoyable user experience.
With JavaScript disabled, your browser will be unable to run or show interactive elements like display ads, animations or audio. However, the good news here is that JavaScript is quite simple to activate. Besides, there are also specific ways that you can disable JavaScript on a per-site basis, instead of turning it off completely.
So, if you have disabled JavaScript in your browser and now wish to enable it, we are here to help. We’ve written this guide to walk you through activating JavaScript in six of the most commonly used browsers. In addition to this, we’ll also walk you through what JavaScript is, what JavaScript is used for and what you can actually do with JavaScript.
Microsoft Edge
Internet Explorer
Mozilla Firefox
Google Chrome
Opera
Apple Safari
Javascript is enabled in your web browser. If you disable JavaScript, this text will change.
Instructions for Web Developers
You may want to consider linking to this site, to educate any script-disabled users on how to enable JavaScript in six most commonly used browsers. You are free to use the code below and modify it according to your needs.
On enablejavascript.io we optimize the script-disabled user experience as much as we can:
- The instructions for your browser are put at the top of the page
- All the images are inlined, full-size, for easy perusing
We want your visitors to have JavaScript enabled just as much as you do!
Google Chrome
- Open up Google Chrome browser on your device
- Click on the Menu icon (three dots) at the top-right corner of your screen.
- Select “Settings” on the drop-down menu – the third option from the bottom
- Now click “Privacy and security” on the left sidebar menu.
- Under “Privacy and security,” select “Site settings.”
- Under “Site Settings,” scroll until you find “JavaScript” and click it.
- Click the button that says “Sites can use Javascript (Recommended)” – it will turn blue when enabled.
Congratulations, you’ve just enabled JavaScript on your Google Chrome browser.
Click HERE to learn more JavaScript on Google Chrome!
Internet Explorer
- Launch your Internet Explorer browser and open a window.
- Click on “Tools” – usually located at the topmost part of the menu bar. Afterward, choose “Internet Options” from the list of options displayed. You can also press the “Alt Key” to locate it quickly.
- Click on the “Security Tab”.
- Tap on the “Custom Level” button.
- Continue scrolling down towards the bottom of the page till you find the “Scripting” heading.
- Select “Active Scripting” to turn on JavaScript.
- Click on “Ok.”
- Refresh your browser.
Click HERE to learn more about JavaScript on Internet Explorer!
Microsoft Edge
- Open your Microsoft Edge browser.
- Click on the three-dot icon in the top right corner to open the Menu tab.
- Choose the “Settings” item on the Menu tab.
- Now click on “Cookies and site permissions” in the left-hand Settings pane.
- Select “JavaScript”.
- Turn on “Allowed (recommended)”.
Click HERE to learn more about JavaScript on Microsoft Edge!
Mozilla Firefox
- Launch your Mozilla Firefox browser and open a window.
- Type “about:config” into the address bar and press Enter.
- Click “Accept the Risk and Continue” button below the warning message to proceed to the preferences search box page.
- Now enter “javascript.enabled” in the preferences search box.
- Locate the option labeled “javascript.enabled” on the search result and toggle on JavaScript.
- Refresh your browser.
Click HERE to learn more about JavaScript on Firefox!
Opera
- Launch your Opera browser.
- Open the “Easy Setup” Menu.
- Scroll down to the bottom of the Easy Setup Menu and select “Go to browser settings”.
- Next, scroll down to find the “Site Settings” options and then click it.
- Under “Site Settings”, locate the option that shows JavaScript and select it.
- Toggle on the “Allowed (recommended)” switch to activate JavaScript. It’ll turn blue when enabled.
- Congratulations, you just activated JavaScript.
Click HERE to learn more about JavaScript on Opera!
Apple Safari
- Navigate to the “Safari” section of your device.
- Select “Preferences”.
- Tap on the security icon.
- Check the checkbox to “Enable JavaScript”.
- Restart your browser.
Click HERE to learn more about JavaScript on Safari!
About
What is JavaScript?
JavaScript is a “client-side” scripting language that is primarily used to create and add all kinds of dynamic interactions to web pages. With its rapid evolution in the tech world, JavaScript has become the cornerstone of modern web development.
It works nicely with traditional software design languages and includes unique features that make it distinct from them. Where CSS and HTML are languages that add style and structure to web pages, JavaScript provides web pages with interactive elements that enhance user experiences.
So, anything that changes, or pops up on your device without web page reloads during a browsing session? Yep, that’s JavaScript.
Today, JavaScript is so impressive that it is used by modern web browsers such as Google Chrome, Safari, Mozilla Firefox, Opera, Internet Explorer, Microsoft Edge etc. Popular mobile devices such as Android and iPhone are also able to run JavaScript-based browsers and applications natively.
Understanding the way JavaScript works is a little easier when you know its prominence, so let’s learn more.
History of JavaScript
It’s been 25 years since, arguably, one of the most frequently used codes for web development was created. The emergence of the Internet has taken JavaScript places it was never predicted to be. Since its release, JavaScript has not only strengthened its spot as a powerful programming language but has also acquired new usage areas in modern web development.
Inspired by Scheme, Java and Self, JavaScript was developed in 1995 by Brendan Eich when he worked at Netscape Communications. In the 1990s, Netscape Communications enjoyed a substantial presence on the Internet through its browser – the Netscape Navigator – which was widely preferred to Mosaic browser, the first mainstream web browser.
Netscape Communications was co-founded by Marc Andreessen, who was part of a team of developers at the University of Illinois that worked on the Mosaic browser project in 1993. As the web gained popularity, tech companies vied to develop the most efficient browser on the Internet.
Microsoft caught wind of this and initiated the Internet Explorer project in a bid to wrestle control of the Internet from Netscape. This sparked a fierce browser war between Microsoft and Netscape to achieve supremacy in the browser share market.
At the time, web developers longed for a scripting language to create or add dynamic features on web pages. Initially, they set their sights on Java but eventually realized that something more flexible was required to enhance user experiences.
Netscape realized this and envisioned a lightweight scripting language that could allow web developers to add interactive features on web pages. Time was of the essence, and this was when the father of JavaScript came into the picture.
In 1995, Brendan Eich was contracted by Netscape to create and implement a dynamic language for the release of their Netscape Navigator 2.0 browser. This project came as a rushed assignment to Eich. However, he saw this as an opportunity to work on something he was passionate about and teamed up with Netscape. And so the idea of a lightweight scripting language was born. It was named Mocha by Eich but was later renamed Live Script. In as little as ten days, a functional prototype was developed by Eich and was ready to be implemented in the Netscape Navigator 2.0 Beta browser.
In a bid to maintain its supremacy in the browser share market, Netscape agreed to partner with Sun Microsystems – developers of the programming language named Java. This alliance meant that Sun Microsystems secured the use of Netscape Navigator as a web delivery platform to make Java available to the Java Community.
In 1996, almost a year later, Live Script was ultimately renamed JavaScript as a marketing strategy to gain acceptance in the Java community. JavaScript was presented as a scripting language for minor client-side projects in the Netscape Navigator 2.0 browser, while Java was endorsed as a specialized tool to develop impressive web solutions.
Following this, Microsoft reverse-engineered JavaScript to develop a custom version for their Internet Explorer 3. It was named JScript to avoid legal issues with Sun Microsystems, who owned the Java brand and had licensed it to Netscape.
Clean, flexible and accessible to non-developers, JavaScript (and JScript) were insanely popular, making web pages more interactive as well as dynamic.
Unfortunately, they both started to earn a negative reputation due to a low barrier entry, which meant that people could write code snippets with little or no knowledge of what they were doing. Additionally, JavaScript was often used to upset people (pop-up ads, browser sniffing, etc.) rather than to enhance their experience.
A significant response to address this issue came in the form of ECMA standardization. Netscape and Sun Microsystems submitted documentation to standardize JavaScript with ECMA International, who would host the standard. Standardization was a significant step and a great call for such a new language.
This opened JavaScript up to a broader audience and allowed developers to have a say in the evolution of the scripting language. Standardization also served the purpose of keeping people who used the code for negative reasons in check. To avoid infringing on Sun’s Java trademark, the ECMA committee decided to name the standardized language ECMAScript.
This caused even more misunderstanding, but ultimately ECMAScript was used to refer to the specification, and JavaScript was (and still is) used to refer to the scripting language today.
Прокси-сервер отказывает в подключении
Такое сообщение об ошибке в Tor Browser означает, что Tails еще не подключился к сети Tor:
Не удалось подключиться к прокси-серверу
Убедитесь, что вы:
- Подключены к локальной сети
- Подключены к сети Tor
Защита AppArmor, скачивание и загрузка файлов
Работа Tor Browser в Tails происходит под контролем программного обеспечения AppArmor. Это нужно для защиты системы и ваших данных от некоторых типов атак на Tor Browser . Поэтому Tor Browser в Tails может использовать ограниченное число папок.
Вот почему, например, вы можете столкнуться с уведомлением В доступе отказано при попытке скачивания файлов в папку Home.
- Вы можете сохранять файлы из Tor Browser в папку Tor Browser , расположенную в Home . Содержимое этой папки исчезнет после того, как вы выйдете из Tails.
- Если вы хотите закачать файлы в интернет с помощью Tor Browser , сначала скопируйте их в эту папку.
- If you turned on the Persistent Folder feature of the Persistent Storage, you can also use the Persistent/Tor Browser folder to download and upload files from Tor Browser. The content of the Persistent/Tor Browser folder is saved across different working sessions.
Чтобы предотвратить нехватку памяти и сбой Tails, лучше скачивать самые крупные файлы в папку Persistent/TOR Browser. Файлы, которые вы сохраняете за пределами Постоянного хранилища, остаются в (не очень большой) оперативной памяти.
Анонимное использование Tor Browser
Посещать сайты через Tor и скрыть от них этот факт не получится. Список выходных узлов сети Tor находится в публичном доступе.
Многие сайты просят вас ввести капчу при использовании Tor Browser.
Tor Browser обеспечивает анонимность: все пользователи выглядят одинаково. Невозможно определить, кто есть кто среди миллионов пользователей Tor Browser.
Tails пытается сделать так, чтобы сайтам было как можно труднее отличать пользователей Tails от других пользователей Tor Browser. Если бы сайт мог определить, используете вы Tor Browser отдельно или в рамках Tails, о вас стало бы известно чуть больше в ущерб вашей анонимности.
Посещаемые сайты могут получить много данных о вашем браузере, включая Tor Browser. Эти данные называют отпечатком браузера. Они включают название и версию браузера, размер окна, часовой пояс, доступные шрифты и т.д.
Чтобы пользователей Tails было сложнее отличить от других пользователей Tor Browser, встроенный Tor Browser старается предоставлять в Tails те же данные, что и в других операционных системах.
В Tails есть расширение uBlock Origin, удаляющее рекламу. Если злоумышленник сможет определить, что вы не загружаете рекламные объявления на сайтах, он поймёт, что вы используете Tails.
Кто-то следит за вами в сети? Хотите скрыть от него факт использования Tor? Мы расскажем как.
Шифрование HTTPS с помощью HTTPS Everywhere
Используйте HTTPS вместо HTTP. Ваше соединение будет зашифровано, а выходной узел Tor не сможет перехватить ваши данные.
Вот что мы видим в браузере, когда собираемся войти в аккаунт электронной почты riseup.net через веб-интерфейс:
Обратите внимание на значок замка в адресной строке слева от mail.riseup.net. Заметьте, что адрес начинается с https://, а не http://. Это говорит о том, что применяется зашифрованное соединение с использованием HTTPS.
Отправлять или получать важную информацию (например, вводить пароль на сайте) лучше только там, где используется HTTPS. Иначе злоумышленнику очень легко украсть любую передаваемую информацию или подменить содержимое страницы на пути к вашему браузеру.
HTTPS Everywhere – расширение Firefox в составе Tor Browser . Оно было разработано The Tor Project совместно с Electronic Frontier Foundation. Расширение обеспечивает включение зашифрованного соединения для множества сайтов. Иногда сайт в принципе поддерживает HTTPS-шифрование, но с проблемами. Например, сайт может по умолчанию использовать незашифрованные соединения HTTP или включать в зашифрованные страницы ссылки на незащищённый контент. Расширение HTTPS Everywhere решает эти проблемы. Оно следит, чтобы подключение шло по HTTPS.
Здесь вы можете узнать больше о HTTPS Everywhere:
- сайт HTTPS Everywhere;
- FAQ HTTPS Everywhere.
Защита от опасного JavaScript
Отключение всего JavaScript по умолчанию приведёт к отключению большого объёма безобидного и, возможно, полезного JavaScript. Многими сайтами станет невозможно пользоваться.
Вот почему JavaScript по умолчанию включён. При этом Tor Browser отключает весь потенциально опасный JavaScript. Это компромисс между безопасностью и удобством использования.
Чтобы лучше понять работу Tor Browser , например, с JavaScript и куки-файлами, см. описание Tor Browser .
Уровень безопасности
Вы можете изменить уровень безопасности Tor Browser . Это позволит выбрать нужный баланс между безопасностью и удобством использования. Например, можно сменить уровень безопасности на Безопасный и полностью отключить JavaScript.
По умолчанию установлен уровень безопасности Стандартный. Он подходит большинству пользователей.

Чтобы изменить уровень безопасности, нажмите на значок справа от адресной строки и выберите Расширенные настройки безопасности… .

Вы можете смело игнорировать сообщение «Вашим браузером управляет ваша организация», которое появляется в настройках Tor Browser .
Это сообщение значит, что функция автоматического обновления Tor Browser отключена. В Tails это сделано намеренно, для уверенности, что ни одна функция безопасности или настройка не пострадает из-за автоматических обновлений Tor Browser .
Цепочка Tor

Нажмите на значок замочка в адресной строке, чтобы увидеть цепочку Tor. Эта цепочка используется для подключения к сайту в текущей браузерной вкладке. Вы можете узнать, в каких странах находятся три узла, а также их IP-адреса.
Последний узел в цепочке, прямо перед сайтом назначения – выходной узел. От его юрисдикции может зависеть доступ к сайту.
Чтобы изменить цепочку, нажмите на кнопку Новая цепочка для этого сайта .
Подробнее об используемых цепочках Tor можно узнать с помощью Onion Circuits .
Новая личность

To switch to a new identity, choose ▸ New Identity .
Опция смены личности в Tor Browser:
- закрывает все открытые вкладки;
- очищает данные после завершения сессии, включая кэш, историю и куки-файлы;
- завершает все действующие веб-соединения и создает новые цепочки Tor;
Этой опции мало, чтобы однозначно разделить личности, так как используемые за пределами Tor Browser цепочки не меняются.
Лучше перезапустите Tails.
Расширение NoScript для контроля над JavaScript

Tor Browser включает расширение NoScript для:
- более эффективной защиты от атак с использованием JavaScript, например, от межсайтового скриптинга;
- возможности полного отключения JavaScript на избранных сайтах.
Подробнее см. сайт NoScript и его раздел опций.
Леттербоксинг (Letterboxing)

В Tor Browser есть функция, которая не позволяет сайтам идентифицировать ваш браузер по размеру окна. Эта функция называется «леттербоксинг» (англ. letterboxing).
Опция леттербоксинга в Tor Browser добавляет серые поля в окно браузера при изменении его размера. Веб-страница максимально приближена к желаемым параметрам, но фактический размер окна при этом не раскрывается.
Tor Browser — настройка на анонимность
Этот материал посвящён дополнительной настройке Tor Browser — одного из наиболее популярных и доступных средств анонимной работы в интернете. Если вы чувствуете себя новичком в отношении анонимности в интернете, то рекомендуем прочесть наши материалы «Анонимность в сети» и «Противники анонимности и их методы» — чтобы получить общее представление об анонимности и важности её сохранения.
Если у вас есть причины заботиться о собственной анонимности и безопасности в современном информационном поле, то, вероятно, Tor Browser станет одним из часто употребляемых вами инструментов.

Tor Browser — версия 13
В данной статье мы рассматриваем дополнительную настройку браузера: отключение наиболее опасных Web-технологий активированных по умолчанию, настройку интерфейса для снижения вероятности случайной утечки информации, сокращение потребления ресурсов. Кроме того, мы рассмотрим настройку Tor-маршрутизатора для усложнения деанонимизации.
Заметим, что с конца 2021 года власти России негласно пытаются блокировать Tor. Несмотря на это, число прямых подключений к сети из России на начало 2023 года составляет порядка 100 тысяч в день. Если у вас возникают проблемы с подключением к Tor, то вы можете обратиться к статье «Обход блокировки Tor в России», в которой мы описываем несколько вариантов обхода блокировок.
Имейте в виду, что если вам нужно просто обойти блокировки установленные интернет-цензурой, при этом сохранение анонимности не является приоритетом, то скорее всего вам достаточно использовать Tor Browser с настройками по умолчанию, воспользоваться каким-нибудь из популярных дополнений в обычные браузеры типа Chrome, Firefox и Opera.
- Скриншоты выполнены под одним из современных дистрибутивов Linux, они не зависят от операционной системы (ОС), и актуальны независимо от используемой вами ОС.
- Некоторые скриншоты отредактированы с целью удаления информации, способной указать на время их создания.
- Оформление браузера на некоторых скриншотах может отличаться от актуального, так как основное их содержимое не изменилось в современных версиях.
Установка и первый запуск
Установка и первый запуск Tor Browser подробно рассмотрены в отдельном материале «Tor Browser — установка и запуск».
Тест анонимности
Итак, браузер установлен и запущен. Теперь проверим, всё ли работает так, как мы ожидаем, и насколько мы действительно анонимны.
Общеизвестно, что установить личность интернет пользователя можно по его IP адресу. Однако стоит понимать, что IP адрес является важным, но не единственным идентификатором пользователя в интернете Подробнее разнообразных способах идентификации пользователей в интернете мы расскажем в отдельном материале. .
Сперва, убедимся что браузер действительно работает через Tor, это значит что IP адрес, с которого мы работаем в интернете принадлежит одному из выходных узлов Tor. Для этого зайдём на check.torproject.org — специальный сайт от проекта Tor. Если всё хорошо, то вы должны увидеть что-то вроде этого:

Tor Browser раскрывает ОС пользователя!
На официальном сайте check.torproject.org выполняется самая простая проверка анонимности, на прямое сокрытие IP адреса. Есть множество более сложных техник позволяющих установить если не истинный IP адрес пользователя, то хотя бы то, что один и тот же пользователь использует разные подставные IP адреса. Существует множество сайтов использующих эти техники, для проверки надёжности анонимизации пользователя, им будет посвящён отдельный материал Несколько устаревшую, но в целом актуальную информацию можно получить ознакомившись с разделом «О системах тестирования анонимности» из нашего старого материала. . Сейчас же мы остановимся на достаточно серьёзном недочёте Tor Browser — раскрытии типа операционной системы (ОС) пользователя.
Одним из основных принципов, обеспечивающих анонимизацию пользователей Tor Browser является похожесть этих пользователей для внешнего наблюдателя в интернете — они используют браузер одной и той же версии с максимально одинаковыми настройками, вплоть до размеров окон. Несмотря на то, что Tor Browser запущенный под любой ОС отправляет заголовок User-Agent соответствующий Windows, механизм позволяющий скрыть настоящую ОС от тестов выполняемых средствами JavaScript был сломан несколько версий назад.
Если ранее тесты для всех операционных систем возвращали значение Win32 , что соответствовало наиболее популярной ОС Windows, то теперь узнать тип вашей операционной системы не составляет труда для любого сайта, на который вы зайдёте, ведь JavaScript включён в Tor Browser по умолчанию. Пример работы сайта webbrowsertools.com:

Раскрытие типа ОС сайтом webbrowsertools.com
Это значимо снижает анонимность пользователей Linux и выделяет их из общей массы среднестатистических пользователей. До версии Tor Browser 12 эту проблему можно было решить установкой дополнения User-Agent Switcher, как это предлагалось в нашем старом материале про настройку Tor Browser . Однако начиная с 12й версии, данное дополнение перестало скрывать тип испольуемой ОС.
Дополнительная настройка Tor Browser
- Повышение безопасности любой системы практически всегда приводит к снижению удобства её использования.
- Некоторые сайты могут частично или полностью перестать работать. Явление, характерное для сайтов, перегруженных сложным функционалом.
- Никакие инструменты и настройки не помогут, если вы не будете соблюдать хотя бы базовые правила безопасной и анонимной работы.
Выбор уровня безопасности
По умолчанию браузер настроен на наиболее комфортную работу пользователя. Настройки безопасности разрешают использование большинства современных Web технологий, ценой некоторого снижения уровня безопасности и повышения потребления ресурсов системы.
Мы исходим из приоритета безопасности и анонимности, потому рассмотрим дополнительные варианты настроек безопасности, предлагаемые Tor Browser . Для этого кликаем на кнопке настроек безопасности правее адресной строки, затем. на Change. :

Для начала выберем средний ( Safer ) уровень безопасности:

Особенности «более безопасного» ( Safer ) уровня:
- JavaScript выключен по умолчанию на сайтах, не поддерживающих HTTPS , защищающего ваше соединение от прослушки и злонамеренного изменения данных. Таким образом, гарантируется что загружаемые скрипты, несущие дополнительные риски безопасности, не были подменены «по дороге» злоумышленником.
- HTML5 видео и аудио (например на таких сайтах как youtube.com ) будет проигрываться только после явного клика мышкой по проигрывателю и активации через меню NoScript, но об этом позже.
- Некоторые шрифты и отображение сложных математических формул и уравнений будут отключены, это может затронуть например Wikipedia.org — вместо формул со сложными дробями, математическими знаками интегралов и сумм вы увидите мешанину из символов и ключевых слов языка разметки формул.
Если вы предполагаете часто посещать сайты со множеством динамического контента, такие как социальные сети или видеохостинги, то этот режим будет являться разумным балансом между безопасностью и удобством использования.
Если же в приоритете безопасность и анонимность, то мы рекомендуем использовать максимальный уровень:

Отличия «наиболее безопасного» ( Safest ) режима от предыдущего уровня:
- JavaScript отключён по умолчанию для всех сайтов.
- Отключена поддержка векторных ( SVG ) рисунков.
Имейте в виду, что на этом уровне безопасности . Но даже после его включения, многие сайты могут отображаться неправильно (например, ВК), а некоторые и вовсе перестают работать (например, YouTube)
Дополнение NoScript
Начиная с Tor Browser версии 8.5 кнопка управления настройками NoScript удалена с панели инструментов браузера, тем не менее, само дополнение по-прежнему входит в сборку браузера
Это дополнение может блокировать выполнение JavaScript (JS) кода и некоторых других потенциально опасных объектов, создающих интерактивность Web-страниц, и по совместительству — повышенное энергопотребление компьютера, и множество потенциальных уязвимостей. К сожалению, современные сайты в большинстве своём очень сильно завязаны на возможность выполнять JS код, и многие из них (например, VK, Facebook) без JS не будут работать вовсе. Именно это является причиной того, что по умолчанию в Tor Browser блокировка JS отключена, т.е. всем посещаемым страницам разрешается выполнять почти любой JS код.
Мы рекомендуем добавить кнопку дополнения NoScript на панель браузера, чтобы иметь возможность управлять настройками дополнения самостоятельно, а не так, как это показалось правильным разработчикам Tor Browser . О том как это сделать рассказано ниже.
Итак, представим, что вы задали средний уровень безопасности (Safer) и зашли на YouTube.com. На первый взгляд проблем нет и всё работает. Но при попытке просмотра видео вы получите либо чёрный фон со вращающимся значком загрузки в центре, либо запрещающий знак NoScript. Чтобы всё-таки просмотреть видео, нужно кликнуть на значок NoScript справа от адресной строки. В раскрывшемся меню будет от одной до нескольких строк, каждая из которых состоит из:
- — в левой части. Каждый из уровней обозначен отдельным значком:
— разрешения по умолчанию, зависят от заданного уровня безопасности.
— добавить сервер во временный список доверенных, которым разрешено выполнять активное содержимое. Разрешения сбросятся в значение по умолчанию после перезапуска браузера.
— добавить сервер в постоянный список доверенных, т.е. однажды заданные настройки разрешения будут сохранены и после перезапуска браузера. Не рекомендуем использовать этот пункт, так как во-первых вы можете забыть об этих разрешениях, но сайт будет их продолжать использовать В частности, для слежки за вами по всему интернету, особенно если это какой-нибудь интернет-гигант вроде Google, Facebook или Mail.ru с её множеством сервисов включая VK. . Во-вторых, это может затруднить отрицание причастности в случае изъятия у вас компьютера — сложно будет объяснить зачем у вас в разрешениях есть сайт, который вы якобы не посещали.
— запретить всё активное содержимое.
— задать настройки разрешений вручную.
- для которого задаются настройки — в правой части.
Современные сайты чаще всего содержат ссылки на скрипты, расположенные на сторонних ресурсах, в таком случае строк будет несколько, как и в нашем примере. В общем случае, желательно следовать правилу:
Чем меньше разрешений — тем лучше для вашей анонимности и безопасности

В ситуации с YouTube следует начать с разрешения только самого YouTube, для чего нужно кликнуть по выделенному красным кружком значку в первой строке, левее надписи . youtube.com :

После чего нужно закрыть меню NoScript , кликнув в любом месте на странице, или на красный крест в верхнем левом углу. Страница автоматически обновится, а меню NoScript примет подобный вид:

В случае с YouTube этого скорее всего будет достаточно для нормального воспроизведения видео. Если вдруг это не помогло, то можно постепенно добавлять разрешения для всех остальных серверов из списка NoScript . При этом, лучше избегать разрешения рекламных и аналитических сервисов, сервера которых часто содержат слова вроде «ads», «click», «spy», «banner», «metric», «counter», «top», «analytics» и другие, связанные с рекламной деятельностью и интернет-аналитикой.
Отдельно стоит остановиться на задании разрешений вручную. Использование его хотя и не обязательно, но предпочтительно, т.к. позволяет выбрать тот необходимый минимум, который действительно следует разрешить. Возьмём для примера наш сайт:

В нашем примере использован самый высокий (Safest) уровень безопасности

Итак, если вы кликнете на значок , то откроется подменю, например такое:

В нём есть список из флажков (checkbox), установка галочки на которых обозначает разрешение соответствующей технологии для данного сервера:
- script — разрешить непосредственно Java Script, и другие языки скриптов. Чаще всего именно этот пункт вам нужно разрешить, чтобы страничка «ожила».
- object — используется достаточно редко, рекомендуется разрешать только если по-прежнему ничего не работает.
- media — различные мультимедиа технологии, в частности видео. Таким образом, для работы YouTube и других современных видеосервисов этот параметр должен быть разрешён.
- frame — используется нечасто, но не несёт значимой опасности, потому разрешён по умолчанию.
- font — позволяет использовать шрифты, заданные создателем сайта. Без него страница может хуже выглядеть, некоторые элементы оформления могут не отображаться. Имейте в виду, что включение этой возможности вместе с разрешёнными скриптами (script) позволяет сайту определить, какие шрифты установлены на вашем компьютере, тем самым снизив ваш уровень анонимности.
- webgl — о том что это такое, и чем опасно, говорилось в нашем старом материале, разрешайте только при реально существующей необходимости.
- fetch , ping , other , noscript — используется некоторыми видами скриптов, можно разрешить если все обычное разрешение скриптов не помогло привести страницу в работоспособное состояние.
- unrestricted CSS — включает функционал браузера позволяющий реализовать уязвимость PP0 , при помощи которой злонамеренный веб-сайт может «подслушать» данные других приложений запущенных на вашем компьютере. Рекомендуем включать этот функционал только для действительно доверенных ресурсов.
Обратите внимание, что возможности, действительно запрашиваемые сайтом, выделяются красным фоном. В нашем примере это возможность font . Все остальные пункты, не подсвеченные красным, в действительности сайтом не используются и разрешать их не имеет смысла.
Несколько слов о значках в верхней строке меню NoScript :

Значки обозначают, соответственно: закрыть меню NoScript , обновить страницу и открыть настройки самого NoScript . Можно сказать, что они достаточно бесполезны, т.к. меню NoScript закрывается автоматически при клике в любом месте страницы, при этом автоматически обновляется страница. Использовать какие-то особые настройки NoScript тоже бессмысленно, потому что они сбрасываются при перезапуске браузера.
Первые три значка обозначают разрешение всего активного контента глобально (т.е. для всех сайтов), отмену ограничений для активной вкладки и добавление текущей страницы в список временно доверенных. Использование этих кнопок разрешает выполнение активного контента без разбора либо для всех сайтов вообще, либо для отдельных сайтов или вкладок. Потому мы не рекомендуем использовать эти кнопки, если вам важны анонимность и безопасность.

Впрочем, кнопка разрешающая все скрипты для отдельной вкладки , в некоторых случаях может оказаться полезной. Например, когда вам временно необходимо привести в работоспособное состояние сайт, загружающий скрипты с пары десятков серверов. Разумеется, делать это вручную как неудобно, так и опасно — ведь некоторые из этих серверов могут использоваться и на других вкладках, на которых вы не собираетесь разрешать JavaScript. В таком случае, правильней всё-таки разрешить все скрипты для данной вкладки, сделать в ней то что нужно, и закрыть вкладку. После чего случае все временные разрешения для всего множества разрешённых серверов автоматически сбросятся.

Последняя, самая правая кнопка из верхнего ряда отменяет все выданные ранее временные разрешения для всех сайтов. Это значит, что после нажатия на неё все временные разрешения добавленные через кнопку вернутся в значение по умолчанию для выбранного уровня безопасности. Кнопка полезная, но важно не забывать, что в случае с самым высоким уровнем (Safest) это обозначает запрет всех скриптов во всех вкладках и окнах браузера, следовательно приостановку работы современных социальных сетей, видео-хостингов и прочих сайтов, насыщенных активным контентом.
Ограничение автоматических подключений
Материал этого раздела
актуален и для обычного
Firefox
Даже если вы не проявляете какой-либо активности в интернете и отключили JavaScript , способный выполнять запросы к серверам без вашего участия, ваш браузер всё равно будет время от времени автоматически создавать подключения к различным серверам в интернете.
Например — он может выполнять проверку и закачку обновлений самого браузера и установленных дополнений, обновлять различные служебные страницы. В некоторых случаях браузер может для вашего удобства (так решили разработчики) создавать подключения к серверам в зависимости от ваших действий, хотя вы уверены, что не выполняете ничего такого, что должно привести к подключению к серверам в интернете.
Перечислим потенциальные угрозы безопасности, связанные с автоматической установкой соединений.
- Затруднение отрицания причастности при экспертизе вашего компьютера. Все подключения с вашего IP адреса, включая автоматически создаваемые Tor Browser , фиксируются у вашего провайдера, что уже мешает вам сказать «ничего не знаю, наверное у меня даже компьютер в это время был выключен». Но если вы выходили в интернет с публичной точки доступа, то можно списать всякую активность Tor на неизвестного соседа по точке доступа. Это гарантированно не сработает в случае, если у вас в интересующий момент времени выполнилось автоматическое обновление Tor Browser или одного из дополнений. Соответствующие им изменения на вашем компьютере сможет обнаружить любой квалифицированный специалист, следовательно будет понятно, что компьютер, с которого вы используете Tor Browser был включен, имел подключение к интернету и на нём был запущен Tor Browser .
- В случае качественно проведённого взлома проекта Tor , или одного из дополнений, идущих в поставке Tor Browser , вы рискуете автоматически скачать и установить заверенное всеми необходимыми цифровыми подписями обновление, содержащее деанонимизирующий код, до того как взлом будет раскрыт и скомпрометированные установочные файлы будут удалены с сервера.
- Возможно, у вас очень дорогой доступ в интернет и объём трафика ограничен, используется в основном для систем мгновенных сообщений, потребляющих мало трафика, а обновления вы предпочитаете выкачивать на альтернативном, более быстром и дешёвом канале вручную. В таком случае лишние несколько мегабайт, потраченные на автообновление, могут лишить вас связи в самый неудачный момент.
Также стоит вспомнить общий принцип — чем больше компьютер проявляет активности в интернете, тем обычно проще его отследить. Но, в случае с Tor Browser , у нас нет достоверных данных, подтверждающих этот принцип, и потому мы рассматриваем данную угрозу как наименее опасную из возможных. Примем с благодарностью и обязательно опубликуем опровержение или подтверждение нашего предположения, если оно будет подкреплено информацией из достоверных источников или практическим примером.
Отключение автоматического обновления Tor Browser
Начиная с Tor Browser версии 9, стало невозможным отключение автоматической проверки наличия обновлений через интерфейс настройки, однако по прежнему можно отключить их автоматическую загрузку и установку.
Для отключения автоматической загрузки и установки обновлений Tor Browser открываем настройки:

Пишем слово «update» в поиск в правом верхнем углу вкладки настроек, после чего выбираем опцию «Check for updates but let you choose to install them»:

В таком режиме проверка обновлений выполняется автоматически, но скачивание происходит только после явного подтверждения пользователем.
Отключение проверки обновлений
Несмотря на невозможность выключить проверку обновлений через настройки браузера, это по прежнему можно сделать используя политики Firefox.
Не забывайте, что полностью отключив проверку обновлений вы берёте на себя ответственность за отслеживание выпуска новых версий браузера!
Чтобы сделать это, нужно сперва перейти в каталог где находится исполняемый файл браузера и создать там каталог с именем distribution , внутри которого создать файл policies.json следующего содержимого:
После чего перезапустить браузер.
Например, если браузер распакован в /tmp , то нужным нам каталогом будет /tmp/tor-browser/Browser . В командной строке необходимые действия можно сделать так:
mkdir /tmp/tor-browser/Browser/distribution cd /tmp/tor-browser/Browser/distribution echo '< "policies": < "DisableAppUpdate": true, "DisableTelemetry": true >' > policies.json
Отключение автоматического обновления дополнений
Выбираем в меню пункт Add-on and themes :

В разделе Extensions открываем настройки и снимаем галку с соответствующего пункта:

После этого сбрасываем настройки автоматического обновления всех установленных дополнений в режим проверки вручную:

Отключение протокола OCSP
Когда вы посещаете HTTPS сайты (коих сегодня большинство), Tor Browser проверяет при помощи протокола OCSP действительность сертификата шифрования используемого посещаемым сайтом. В ходе этой проверки он может устанавливать соединение с третьей стороной, обладающей информацией по действительности сертификата. А значит, о том, что вы посетили некий сайт, становится известно не только вам и серверу, на котором находится сайт, но и третьей стороне.
С нашей точки зрения — безопасней отключить эту проверку, потому что случаи отзывов сертификатов достаточно редки, а HTTPS сайты вы посещаете постоянно и их число с течением времени только увеличивается.
Открываем настройки, пишем «OCSP» в поиск в правом верхнем углу вкладки настроек, после чего снимаем галку с пункта Query OCSP responer server to . :

Сброс закачек
Если вы запустили закачку большого объёмного файла, но он не успел докачаться до того, как вы отключились от интернета, то закачка автоматически возобновится как только у Tor Browser появится доступ в интернет.
Если вам это не нужно, то вы можете открыть закачки и удалить ненужные файлы:

Редактор настроек Tor Browser — about:config
Через обычный пользовательский интерфейс нам доступна лишь незначительная часть из возможных настроек Tor Browser . Полный доступ ко всем настройкам браузера можно получить через специальный инструмент about:config . Чтобы его запустить, откройте новую вкладку браузера, в адресной строке введите: about:config и нажмите Enter. Вы увидите предупреждение:

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

По умолчанию отображается только поисковая строка, при вводе текста в которую будут отображаться соответствующие поисковому слову параметры. Для отображения всех настроек сразу можно кликнуть ссылку «Show All»:

Это полный список всех доступных настроек браузера и установленных дополнений.
- В самой левой колонке отображены имена параметров, разбитые по группам, в которых имя группы от имени конкретного параметра или подгруппы отделяется точкой.
- Во второй колонке отображено непосредственно значение параметра. Оно может быть строковым ( string ), целым числом ( number ) или логическим ( boolean ) и принимать значения true или false .
- Третья колонка содержит значки, при клике на которые появится строка редактирования для числовых и строковых параметров. Для логических параметров автоматически произойдёт изменение значения на противоположенное, т.е. true заменится на false или наоборот. Такого же эффекта можно добиться двойным щелчком в любом месте строки конфигурации.
Обратите внимание, что имя и значение параметра выделяются жирным шрифтом, если значение было изменено и отличается от значения по умолчанию. Также, в крайней справа колонке появляется значок стрелки влево, позволяющий вернуть значение по умолчанию, т.е. таковым каким оно было установлено разработчиками при выпуске браузера.
Если вам нужно добавить новый, не существующий в списке параметр, то вы можете написать его имя в строке поиска, выбрать желаемый тип параметра — boolean , number или string , нажать значок «плюс» в правой части строки, после чего задать и сохранить значение параметра.
Расширенные настройки Tor Browser
Материал этого раздела
актуален и для обычного
Firefox
Теперь займёмся более тонкой настройкой Tor Browser . В интернете можно найти множество рекомендаций по настройке Firefox для более безопасного использования, и многие из них по умолчанию выполнены в Tor Browser . Здесь мы указываем только параметры, которые стоит настроить самостоятельно.
В нижеследующем списке настроек предлагается отключение множества разнообразных возможностей, встроенных в браузер. Для этого есть как минимум две причины:
- Часть отключаемых возможностей могут быть непосредственно использованы технологиями слежки за пользователем в интернете.
- Кроме того, некоторые из возможностей имеют достаточно сложную внутреннюю реализацию, потенциально позволяющую нарушить безопасность пользователя и позволить эксплуатировать уязвимости в браузере и операционной системе.
Для удобства, список предлагаемых настроек разбит на три части, в зависимости от степени влияния на безопасность и удобство использования браузером.
Параметры указаны в формате:
имя.параметра ⇒ значение-параметра
Заметно: может ли быть отслежено внешним наблюдателем
Описание параметра.
Под возможностью отслеживания параметра внешним наблюдателем подразумевается возможность узнать значение конкретного параметра в вашем браузере, без вашего непосредственного участия. Т.е. может ли владелец сайта, на который вы зашли, определить значение какой-то конкретной настройки. Это часть возможностей технологии, называемой «Browser Fingerprinting», т.е. буквально «снятие отпечатков пальцев браузера», и может быть использовано для идентификации конкретно вашего браузера в сети. Что хотя и не лишает вас анонимности, но в некоторых случаях может позволить определить, что несколько разных посещений разных сайтов сделаны не разными людьми, а одним и тем же человеком, пусть и остающимся анонимным.
Тем самым, чем больше в вашем браузере настроек, чьё значение не равно значению по умолчанию и может быть определено без вашего участия, тем больше потенциальной возможности прослеживать ваш анонимный след в интернете Противоречиям между анонимностью, безопасностью и незаметностью будет посвящён отдельный материал, кроме того, вы можете ознакомиться с разделом «Защищённость против незаметности» из нашего старого материала. . Не забывайте об этом, когда тюнингуете свой браузер.
Все настройки, выполняемые в Tor Browser не затрагивают другие браузеры и программы, установленные в вашей системе, а потому никак не влияют на вашу анонимность и безопасность при работе в других программах
Можно избежать утомительной настройки всех параметров вручную, воспользовавшись способом, указанным в разделе «Автоматическая настройка Tor Browser » в конце статьи.
Базовый уровень
Настройки базового уровня минимально влияют на удобство использования браузера, но могут значительно повысить безопасность работы и снизить вероятность случайной утечки данных. Мы рекомендуем включать их всегда, если вы применяете Tor Browser для чего-то более серьёзного, чем посещение заблокированных сайтов с «пиратским» контентом.
В некоторых настройках этого раздела применяется адрес: https://127.0.0.1:65535/ — это специальный URL , указывающий в качестве назначения ваш собственный компьютер вместо сервера в интернете. Т.к. ваш компьютер не является сервером, то он их отвергнет. Тем самым, гарантированно блокируются некоторые автоматические запросы браузера потенциально способные разрушить вашу анонимность.
- browser.cache.disk.capacity ⇒ 0
browser.cache.disk.smart_size.enabled ⇒ false
browser.cache.offline.enable ⇒ false
Заметно: Нет
Полностью отключаем дисковый кэш данных, для избежания «оседания» данных посещённых сайтов на диске.
- breakpad.reportURL ⇒ https://127.0.0.1:65535/
toolkit.crashreporter.infoURL ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес для отправки отчётов о проблемах с браузером.
- devtools.chrome.enabled ⇒ false
devtools.debugger.remote-enabled ⇒ false
Заметно: Нет
Отключаем удалённую отладку браузера, т.к. это подразумевает возможность подключаться к браузеру с других компьютеров и получать доступ к его внутренним данным.
- network.trr.mode ⇒ 5 (по умолчанию: 0)
network.trr.odoh.enabled ⇒ false (по умолчанию: false)
Заметно: Нет
Отключаем функционал DNS over HTTPS , «безопасно» отправляющий DNS запросы единому провайдеру услуги, чаще всего представленному какой либо крупной IT корпорацией. Отключено и заблокированно по умолчанию начиная с 13й версии браузера.
- doh-rollout.uri ⇒ https://127.0.0.1:65535/ (по умолчанию: https://mozilla.cloudflare-dns.com/dns-query)
network.trr.default_provider_uri ⇒ https://127.0.0.1:65535/ (по умолчанию: https://mozilla.cloudflare-dns.com/dns-query)
Заметно: Нет
Заменяем адрес «доверенного» сервиса разрешения имён принадлежащего компании CloudFlare.
- browser.urlbar.merino.enabled ⇒ false (по умолчанию: true)
browser.urlbar.merino.endpointURL ⇒ https://127.0.0.1:65535/ (по умолчанию: https://merino.services.mozilla.com/api/v1/suggest)
Заметно: Нет
Отключаем сервис Merino, предоставляющий подсказки при наборе текста в адресной строке.
- app.normandy.api_url ⇒ https://127.0.0.1:65535/ (по умолчанию: )
app.normandy.enabled ⇒ false
Заметно: Нет
Mozilla иногда проводит сбор данных о том, как используется браузер, на случайных группах пользователей. На всякий случай отключаем эту возможность. По умолчанию отключено с 12й версии браузера.
- network.dns.disablePrefetchFromHTTPS ⇒ true
network.prefetch-next ⇒ false
network.preload ⇒ false
Заметно: Да
Отключаем технологию упреждающей загрузки ( prefetch ), позволяющей Web-странице «подсказать» браузеру страницу, ссылка на которую скорее всего будет кликнута в ближайшем будущем. Браузер загружает указанную ссылку в фоновом режиме, и когда пользователь кликает по ней мышкой — он сразу же показывает её, не тратя время на загрузку по сети, что может существенно ускорить отзывчивость сайта. Например, такое решение может использоваться при пролистывании галереи из множества изображений, или для неявного отслеживания пользователя. При использовании упреждающей загрузки возрастает и расход трафика — ведь вовсе не обязательно, что вы решите продолжить просмотр и будете делать это именно в той последовательности, в которой предполагает разработчик сайта. По умолчанию отключено с 12й версии браузера.
- social.directories ⇒ https://127.0.0.1:65535/
social.remote-install.enabled ⇒ false
social.share.activationPanelEnabled ⇒ false
social.shareDirectory ⇒ https://127.0.0.1:65535/
social.toast-notifications.enabled ⇒ false
social.whitelist ⇒ false
Заметно: Неизвестно
Отключаем возможности интеграции с социальными сетями как априори небезопасными для анонима сервисами.
- browser.ping-centre.telemetry ⇒ false
captivedetect.canonicalURL ⇒ https://127.0.0.1:65535/
dom.ipc.plugins.flash.subprocess.crashreporter.enabled ⇒ false
dom.ipc.plugins.reportCrashURL ⇒ false
dom.security.unexpected_system_load_telemetry_enabled ⇒ false
experiments.manifest.uri ⇒ https://127.0.0.1:65535/
experiments.supported ⇒ false
javascript.options.experimental.ergonomic_brand_checks ⇒ false
network.allow-experiments ⇒ false
network.trr.confirmation_telemetry_enabled ⇒ false
toolkit.coverage.endpoint.base ⇒ https://127.0.0.1:65535/
toolkit.coverage.opt-out ⇒ true
toolkit.telemetry.archive.enabled ⇒ false
toolkit.telemetry.bhrPing.enabled ⇒ false
toolkit.telemetry.cachedClientID ⇒ «» (пустая строка)
toolkit.telemetry.coverage.opt-out ⇒ true
toolkit.telemetry.firstShutdownPing.enabled ⇒ false
toolkit.telemetry.infoURL ⇒ @https://127.0.0.1:65535/ @
toolkit.telemetry.newProfilePing.enabled ⇒ false
toolkit.telemetry.pioneer-new-studies-available ⇒ false
toolkit.telemetry.rejected ⇒ true
toolkit.telemetry.server ⇒ https://127.0.0.1:65535/
toolkit.telemetry.shutdownPingSender.enabled ⇒ false
Заметно: Неизвестно
Отключаем телеметрию В контексте Web-технологий под телеметрией подразумевается сбор информации о том, как (и когда) пользователь работает с браузером. и потенциальную возможность различных экспериментов, переодических производящихся компанией Mozilla с браузерами пользователей.
- beacon.enabled ⇒ false
Заметно: Неизвестно
Отключаем интерфейс асинхронной передачи HTTP данных, используемый для интернет-аналитики, т.е. слежки за пользователем. По умолчанию отключено с 12й версии браузера.
- browser.bookmarks.max_backups ⇒ 0
Заметно: Нет
Сбрасываем количество резервных копий закладок в 0. В Tor Browser в принципе не стоит использовать закладки, чтобы не оставлять информации о посещаемых сайтах. Но даже если вы их не используете, то по умолчанию будут создаваться резервные копии пустых закладок, на основании чего можно будет определить, в какое время был запущен браузер.
- browser.cache.disk_cache_ssl ⇒ false
Заметно: Нет
Отключаем возможность кэширования, т.е. сохранения на диске, содержимого страниц, доступных по зашифрованному протоколу HTTPS (SSL).
- browser.casting.enabled ⇒ false
Заметно: Неизвестно
Отключаем возможность проецировать экран компьютера на устройства в локальной сети, такие как Chromecast и подобные.
- browser.discovery.enabled ⇒ false
Заметно: Нет
Создаём настройку, блокирующую потенциальную возможность подгружать рекомендации для пользователя с серверов Mozilla. По умолчанию отключено с 12й версии браузера.
- browser.startup.homepage ⇒ chrome://browser/content/blanktab.html
Заметно: Неизвестно
Отключаем «домашнюю страницу», т.е. то, что браузер показывает при запуске. По умолчанию Tor Browser показывает нам окно с своеобразным фоном и рекламой проекта Tor, хорошо узнаваемое, даже если человек лишь мельком издалека бросил взгляд на ваш монитор. Мы находим полезным проект Tor, и считаем, что он должен быть известен как можно большему количеству людей, но личная безопасность дороже. Потому, заменяем значение этого параметра на about:blank — теперь при запуске будет отображаться пустая страница.
Данная настройка сломана в Tor Browser 13.0.
- browser.tabs.crashReporting.sendReport ⇒ false
Заметно: Нет
Блокируем возможность отправки отчётов о проблемах с браузером.
- browser.uitour.enabled ⇒ false
Заметно: Нет
Ещё одна настройка, позволяющая собирать телеметрию о пользователе и его предпочтениях в работе с браузером, также отключается.
- browser.urlbar.trimURLs ⇒ false
Заметно: Нет
Отключает сокрытие типа соединения (http:// или https://) из адреса страницы отображаемого в адресной строке браузера. Разница между http соединением и https в том, что первое — не шифрованное и может быть беспрепятственно перехвачено и изменено сторонним наблюдателем (например — администратором выходной точки Tor). Второе соответственно шифрованное, и возможность его перехвата варьируется от «очень сложно» до «невозможно».
- dom.battery.enabled ⇒ false
Заметно: Неизвестно
Отключаем программный интерфейс ( API ) для определения параметров батареи устройства на котором запущен браузер.
- dom.allow_cut_copy ⇒ false
Заметно: Неизвестно
Запрещаем web-страницам обращаться к буферу обмена, чтобы защитить информацию которая может в нём оказаться, но при этом быть не связанной с посещаемым сайтом.
- app.feedback.baseURL ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес отправки предложений о работе браузера в Mozilla.
- app.releaseNotesURL.aboutDialog ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес просмотра информации о изменениях последней версии FireFox.
- browser.partnerlink.attributionURL ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес просмотра партнёрских программ Mozilla.
- browser.privatebrowsing.vpnpromourl ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес промо-акций связанных с VPN сервисами.
- browser.topsites.contile.endpoint ⇒ https://127.0.0.1:65535/
Заметно: Нет
Заменяем адрес подборки популярных сайтов предлагаемых Mozilla по умолчанию.
- dom.vibrator.enabled ⇒ false
Заметно: Неизвестно
Отключаем API для управления устройством-вибратором, если таковое имеется.
- extensions.blocklist.enabled ⇒ false
Заметно: Нет
Обновление чёрного списка дополнений браузера. Выключение этого обновления не рекомендуется Mozilla т.к. вы получаете риск продолжать использовать вредоносное дополнение после того, как оно уже будет помечено опасным и должно быть блокировано. Но, разработчики Tor Browser рекомендуют вообще не устанавливать какие-либо дополнения кроме установленных по умолчанию. Если вам всё же действительно нужно стороннее дополнение, то его статус всегда можно проверить, зайдя на сайт официального репозитория дополнений Firefox .
- extensions.systemAddon.update.enabled ⇒ false
Заметно: Нет
Отключаем возможность обновлений системных дополнений, позволяющих Mozilla Компания, выпускающая Firefox, на котором базируется Tor Browser. производить исправление проблем браузера «на лету». Потому что далеко не каждое исправление может оказаться полезным для Tor Browser , а также потому, что это ещё один канал самопроизвольного создания подключений в интернет.
- extensions.update.enabled ⇒ false
Заметно: Неизвестно
Отключаем не только автоматическую загрузку обновлений для дополнений (Add-ons), но и автоматическую проверку наличия этих обновлений. Что помогает сократить количество самопроизвольных подключений браузера в интернет.
- app.update.langpack.enabled ⇒ false
Заметно: Нет
Отключаем автоматическое обновление установленных языковых пакетов.
- browser.download.useDownloadDir ⇒ false
Заметно: Нет
При скачивании показывать окно выбора каталога для сохранения файла. По умолчанию, начиная с Tor Browser версии 12.5, файлы сохраняются в каталог Downloads ( Загрузки ). В 13й версии возвращено старое поведение.
- keyword.enabled ⇒ false
Заметно: Нет
Отключает возможность поиска из адресной строки браузера. В случае, когда вы туда ввели что-то, что «показалось» браузеру непохожим на адрес Web-страницы, он отправляется искать это в поисковике, заданном настройками по умолчанию. В некоторых ситуациях, например, когда вы опечатаетесь в набираемом адресе, браузер не опознаёт его как адрес и потому пытается найти в интернете.
Если это адрес скрытого ресурса, известный только узкому кругу лиц, и вы допустили такую ошибку — значит, случилась утечка информации. Теперь этот адрес, пусть и в не совсем правильном виде, стал известен поисковику, к которому обратился ваш браузер. Чтобы избежать подобных ситуаций мы отключаем эту настройку.
Для использования поиска не заходя вручную на сайт поисковика, вы можете добавить поисковую строку на панель браузера, о том, как это сделать написано ниже.
- media.getusermedia.screensharing.enabled ⇒ false
Заметно: Нет
Запрещаем возможность открывать ваш экран для просмотра другим пользователям. Может применяться совместно с устройствами вроде Google Chromecast.
- network.http.speculative-parallel-limit ⇒ 0
Заметно: Нет
Настройка задаёт количество предварительно устанавливаемых соединений к сайтам, на которые вы возможно зайдёте в ближайшее время. Например, если вы используете режим отображения миниатюр самых посещаемых сайтов на новой вкладке (в Tor Browser отключено по умолчанию), то каждый раз, когда вы проводите мышкой над соответствующей миниатюрой — устанавливается соединение с соответствующим сайтом. Максимальное количество устанавливаемых в фоне соединений равно значению этого параметра.
Обратите внимание, достаточно только провести мышкой над миниатюрой, не кликая по ней — соединение уже будет установлено, и осядет в системе СОРМ у вашего провайдера. Значит, о вашей активности за компьютером будет известно, даже если вы только подумали зайти на сайт, но так и не решились это сделать, или же вовсе случайно провели мышью над окном браузера. Вполне возможно, что эта возможность используется (или будет использована в дальнейшем) и для другого функционала браузера. Настоятельно рекомендуем отключить её как в Tor Browser так и в обычном Firefox , установив значение в 0 .
По умолчанию отключено с 12й версии браузера.
- accessibility.force_disabled ⇒ 1
Заметно: Неизвестно
Запрещаем возможность включения подключения к браузеру инструментов для людей с ограниченными возможностями, т.к. эта возможность позволяет активно вмешиваться в работу браузера. Разумеется, это не нужно делать, если вы используете подобные инструменты.
- browser.sessionstore.max_tabs_undo ⇒ 10 (по умолчанию: 25)
Заметно: Нет
Сокращаем количество записей о закрытых ранее вкладках со значения по умолчанию — 25. Информация о них доступна через меню History → Recently Closed Tabs (Журнал → Недавно закрытые вкладки). Это может сказаться положительно как на отрицании причастности в случае изъятия у вас компьютера с запущенным браузером, так и в отношении потребления браузером памяти. В предыдущих версиях Tor Browser это значение было равно 10.
- dom.ipc.processCount ⇒ 1 (по умолчанию: 8)
Заметно: Нет
Данная настройка задаёт максимальное количество обработчиков Web-содержимого страниц. Теоретически, чем выше этого параметра, тем быстрее браузер обрабатывает ваши запросы, ценою повышенного потребления ресурсов системы (памяти и процессора). На практике, гарантируется только повышенное потребление ресурсов, так как если возможности вашего компьютера не безграничны, то рост количества очень прожорливых процессов-обработчиков может привести к зависанию системы в целом. Особенно актуальным это может оказаться для если вы используете маломощный компьютер, или виртуальные машины на базе специализированных дистрибутивов (таких, как Tails и Whonix), имеющие строгие ограничения по памяти. Негативным эффектом изменения данной настройки может стать незначительное снижение скорости работы браузера, а также одномоментное «падение» всех вкладок при возникновении сбоя в одной из них, так как они будут обрабатываться одним и тем же процессом. Однако вероятность этого события крайне низка.
Стоит заметить, что начиная с версии 12, в которой включена технология Fission, этот параметр мало влияет на потребление ресурсов.
- dom.ipc.processPrelaunch.fission.number ⇒ 0 (по умолчанию: 3)
Заметно: Нет
Отключаем предварительный запуск процесов для обработки изолированного контента. Они нужны для ускорения открытия новых страниц и сами по себе ничего не обрабатывают, но при этом потребляют память.
- dom.ipc.processCount.webIsolated ⇒ 1 (по умолчанию: 4)
Заметно: Нет
Количество процессов запускаемых для использования системой изоляции сайтов Fission. Оказывает такое же влияние на производительность, как и параметр dom.ipc.processCount .
- dom.ipc.forkserver.enable ⇒ true (по умолчанию: false)
Заметно: Нет
Настройка актуальна только для Linux. Она включает fork-server процесс, позволяющий сократить расход памяти и повысить эффективность запуска новых процессов-обработчиков.
- toolkit.legacyUserProfileCustomizations.stylesheets ⇒ true (по умолчанию: false)
Заметно: Нет
Разрешаем обработку файла userChrome.css, используемого нами для редактирования контекстного меню с целью сокрытия из него пунктов способных привести к утечке данных.
- privacy.userInteraction.expiration ⇒ 604800 (по умолчанию: 3888000)
Заметно: Неизвестно
Снижаем до одной недели срок хранения интерактивно выданных сайтам разрешений на использование функционала, который можно использовать для отслеживания действий пользователя в сети.
- browser.topsites.contile.enabled ⇒ false (по умолчанию: true)
Заметно: Нет
Отключаем загрузку рекомендаций от Mozilla Tiles Service (contile).
Средний уровень
Включение этих настроек может иметь заметные негативные последствия для удобства работы: на отдельных сайтах могут пропасть элементы оформления, перестать отображаться сложные математические формулы, производительность Java Script может быть снижена
- permissions.default.camera ⇒ 2
permissions.default.microphone ⇒ 2
Заметно: Неизвестно
По умолчанию запрещаем использование камеры и микрофона. Возможные значения: 0 — всегда спрашивать, 1 — всегда разрешать, 2 — всегда запрещать.
- gfx.direct2d.disabled ⇒ true
layers.acceleration.disabled ⇒ true
Заметно: Неизвестно
Отключаем аппаратное ускорение для затруднения «Browser Fingerprinting», основанного на особенностях графической подсистемы. Из побочных эффектов может наблюдаться изменение отображения шрифтов и снижение производительности видео. Однако, наш опыт показывает, что заметных изменений в худшую сторону при обычном сёрфинге не отмечено. Также из дополнительных положительных эффектов можно отметить потенциальное снижение потребляемой оперативной памяти.
- javascript.options.baselinejit ⇒ false
javascript.options.ion ⇒ false
javascript.options.native_regexp ⇒ false
Заметно: Нет
Отключаем оптимизацию Java Script кода, скорость работы сайтов, нагруженных динамическим функционалом может быть несколько снижена.
Автоматически устанавливается на среднем (Safer) уровне безопасности.
- geo.provider.ms-windows-location ⇒ false
geo.provider.use_corelocation ⇒ false
geo.provider.use_gpsd ⇒ false
Заметно: Неизвестно
Отключаем возможность использования сервиса геолокации встроенного в операционную систему.
- gfx.font_rendering.opentype_svg.enabled ⇒ false
svg.disabled ⇒ true
svg.in-content.enabled ⇒ false
Заметно: Неизвестно
Отключаем обработку элементов страницы в формате SVG
На страницах могут пропасть некоторые рисунки и элементы управления.
Автоматически устанавливается на среднем (Safer) уровне безопасности.
- webgl.disabled ⇒ true
webgl.enable-debug-renderer-info ⇒ false
Заметно: Да
Мы настоятельно рекомендуем выключать технологию WebGL, т.к. при её посредстве может быть осуществлена атака не только на браузер, но и на ядро операционной системы. На практике, очень мало сайтов требуют работы этой технологии, потому отключение её для работы в анонимном режиме чаще всего не имеет никаких последствий для пользователя В нашем опыте пока не нашлось ни одного случая требующего её включения.
Тем не менее, стоит помнить о выключенном WebGL, в случае если у вас возникли проблемы с сайтами, использующими 3D-модели, различные интерактивные графики, диаграммы и подобное.
- browser.send_pings.require_same_host ⇒ true
Заметно: Нет
Отключаем возможность отправки ping-запросов к сторонним ресурсам в момент клика по ссылкам.
- dom.event.clipboardevents.enabled ⇒ false
Заметно: Нет
Отключаем возможность работы с буфером обмена, позволяющую узнать когда и что пользователь скопировал, вставил или вырезал на странице. Функционал, полезный для сложных онлайновых текстовых редакторов, и конечно же, для отслеживания поведения пользователя.
- intl.locale.matchOS ⇒ false
Заметно: Нет
Отключаем возможность определения локали операционной системы Т.е. набора параметров, определяющих «локализацию» пользователя: таких, как язык ввода по умолчанию, формат отображения даты, времени и т.п. Т.е. всё то, на основании чего можно сделать вывод о вашей стране проживания или происхождения. , в таком случае Tor Browser будет использовать локаль по умолчанию.
- javascript.use_us_english_locale ⇒ true
Заметно: Нет
Явно задаём использование английской локали для работы Java Script. Напомним, что мы рекомендуем использовать англоязычную версию Tor Browser чтобы быть минимально выделяющимися в общей массе пользователей.
- mathml.disabled ⇒ true
Заметно: Неизвестно
Блокируем обработку языка разметки сложных математических формул. После включения этой настройки вы увидите мешанину из символов и ключевых слов языка разметки формул.
Автоматически устанавливается на среднем (Safer) уровне безопасности.
- media.webaudio.enabled ⇒ false
Заметно: Неизвестно
Отключаем работу с аудио-устройствами из Web-страниц.
Автоматически устанавливается на среднем (Safer) уровне безопасности.
- dom.media.mediasession.enabled ⇒ false
Заметно: Неизвестно
Отключаем API для работы с мультимедийным контентом (видео/аудио) позволяющим выводить браузеру разнообразные уведомления и использовать мультимедийные кнопки клавиатуры.
- media.hardwaremediakeys.enabled ⇒ false
Заметно: Нет
Отключаем возможность работать с мультимедийными кнопками клавиатуры
Отключаем API для работы с мультимедийным контентом (видео/аудио) позволяющим выводить браузеру разнообразные уведомления и использовать мультимедийные кнопки клавиатуры.
- network.http.sendRefererHeader ⇒ 0 (по умолчанию: 2)
Заметно: Да
Настройка управляет отправкой заголовка Referer к серверу, на котором расположен посещаемый сайт Подробнее об этом и других технических моментах позволяющих организовывать отслеживание пользователя в интернете мы расскажем в отдельном материале. . Возможные значения:
2 — отправляется всегда, при всех запросах, используется по умолчанию.
1 — отправляется только в запросе самой страницы, т.е. при клике по ссылке, но не отправляется при автоматически генерируемых запросах. Например, за картинками загружаемыми на странице.
0 — не отправляется никогда.
Выбор значения зависит от задач, для которых вы используете Tor Browser . Например, нет смысла менять этот параметр, если вы время от времени запускаете Tor Browser для непродолжительного Web-сёрфинга.
Если сеансы вашей работы в браузере более длительны, и вы считаете что есть смысл минимизировать риск возможной интернет-слежки, то стоит установить значение 1. Такое значение отсечёт часть сервисов, использующих подгрузку невидимого пикcеля для отслеживания пользователей в интернете.
Если вы постоянно работаете в Tor Browser и посещаете через него закрытые ресурсы, чей адрес по возможности не должен быть известным в «большом интернете», то лучше всего поставить значение 0. Это исключит утечку адреса закрытого ресурса в ситуации, когда вы кликаете в нём ссылку, ведущую на ресурс публичного интернета. Такое поведение браузера может сломать некоторые сайты, но это достаточно редкое явление.
Описание параметров влияющих на отправку Referer заголовка можно найти в Mozilla Wiki и на странице Referrer-Policy. В Tor Browser на значение этого заголовка также влияет настройка network.http.referer.hideOnionSource по умолчанию равная true , — то есть, при переходе по ссылкам расположенным на сайтах в Tor-сети заголовок Referer не отправляется.
- pdfjs.enableXfa ⇒ false (по умолчанию: true)
Заметно: Нет
Отключаем обработку XFA форм встроенных в PDF документы.
- media.autoplay.allow-muted ⇒ false
Заметно: Да
По умолчанию — видео с отключенным звуком могут автоматически запускаться, следствием чего является как повышенный расход трафика, так и дополнительные возможности деанонимизации пользователя. Отключаем этот функционал.
- full-screen-api.enabled ⇒ false
Заметно: Неизвестно
Отключаем возможность переключать воспроизведение видео в полноэкранный режим. Это предотвращает возможность утечки информации о разрешении экрана, которая может быть использована для идентификации пользователя.
- media.video_stats.enabled ⇒ false (по умолчанию: true)
Заметно: Да
Ограничиваем возможность сбора статистики при воспроизведении видео на Web-сайтах. Подобная статистика может использоваться для идентификации пользователя исходя из особенностей воспроизведения видео его компьютером.
- media.webspeech.synth.enabled ⇒ false (по умолчанию: true)
Заметно: Неизвестно
Отключаем функционал синтезирования речи, как потенциально небезопасный.
- media.gmp-gmpopenh264.enabled ⇒ false (по умолчанию: true)
Заметно: Неизвестно
Отключаем автоматическую загрузку и использование H.264 видеокодека Cisco, используемого в WebRTC — технологии позволяющей обеспечивать видеосвязь между пользователями.
- privacy.restrict3rdpartystorage.expiration_redirect ⇒ 900 (по умолчанию: 2592000)
Заметно: Неизвестно
Снижаем до 15 минут длительность хранения разрешений защиты от слежения.
- browser.contentblocking.features.strict ⇒ tp,tpPrivate,cm,fp,stp,lvl2,rp,rpTop,ocsp,qps,cookieBehavior5,cookieBehaviorPBM5 (по умолчанию: tp,tpPrivate,cm,fp,stp,lvl2,rp,rpTop,ocsp,qps)
Заметно: Неизвестно
Включаем дополнительную защиту от отслеживания через Cookie-файлы добавлением параметров cookieBehavior5 и cookieBehaviorPBM5 .
- browser.tabs.unloadOnLowMemory ⇒ false (по умолчанию: true)
Заметно: Нет
Отключаем автоматическую выгрузку содержимого вкладок, чтобы избежать оседания на диске данных посещаемых сайтов.
- dom.serviceWorkers.navigationPreload.enabled ⇒ false (по умолчанию: true)
Заметно: Неизвестно
Отключаем предварительную загрузку ресурсов в процессе навигации по странице. Это может замедлить загрузку ресурсов страницы, но должно сократить потребление памяти.
Высокий уровень
Включение этих настроек может в той или иной степени негативно сказаться на удобстве и возможности работы с большинством сайтов
- accessibility.cache.enabled ⇒ false
browser.cache.memory.capacity ⇒ 0
browser.cache.memory.enable ⇒ false
dom.caches.enabled ⇒ false
Заметно: Да
Отключаем кэширование данных сайтов — файлов Web-страниц, скриптов, картинок, шрифтов и т.п. Браузер перестаёт отправлять HTTP -заголовок If-Modified-Since, и частично отключает сохранение полученных данных в памяти (кэширование). В ряде случаев это приводит к повторной отправке запросов за ранее полученными файлами, однако, т.к. полностью кэширование всё равно не отключается, то при использовании хорошего интернет-канала вносимая задержка практически не ощущается.
Отключенное в браузере кэширование в некоторых случаях затрудняет определение (со стороны сервера) посещали вы уже определённую страницу, или нет. Но не стоит полагаться на это слишком сильно, т.к. при необходимости, сайт может определить что вы на нём не в первый раз, например при помощи установки Cookie-файлов.
Кроме того, отключенное кэширование может снизить потребление памяти браузером.
- browser.display.use_document_fonts ⇒ 0
Заметно: Да
Полностью запрещаем возможность сайту использовать шрифты, отличные от имеющихся в браузере по умолчанию. Это гарантированно защищает от возможности идентификации браузера по набору шрифтов, а также от атак через специальным образом сформированные файлы шрифтов, которые могут быть загружены в браузер с вредоносных сайтов.
Однако, многие сайты могут отображаться неправильно — возможна порча форматирования, или даже полное исчезновение отдельных элементов управления и навигации сайта.
- clipboard.autocopy ⇒ false
Заметно: Нет
Отключает автоматическое копирование в буфер обмена текста, выделенного мышью на странице. Актуально только для пользователей Linux.
- network.IDN_show_punycode ⇒ true
Заметно: Нет
Включает отображение Punycode имён сайтов, вместо имён на национальных языках. Например, после включения этой настройки, перейдя по ссылке http://россия.рф/ вы увидите не исходный адрес, а http://xn--h1alffa9f.xn--p1ai/ — адрес, в котором все кириллические буквы заменены на однозначно соответствующую им комбинацию латинских букв. Подобное преобразование может производиться для любых символов, не входящих в латинский алфавит, например для символов греческого и немецкого алфавитов.
Отнесение этой настройки к разряду повышающих безопасность работы обусловлено тем, что использование национальных доменов открывает широкие возможности фишинга. Например, сравните адреса: https://россия.рф и https://роccия.рф . Видите разницу? И мы не видим, но она есть. Во втором случае в слове «россия» используются две латинские буквы «c» вместо соответствующих кириллических. Для человека разницы никакой, но технически это совершенно разные адреса, которые могут вести на совершенно разные сервера.
Если же вы включите эту настройку, то в первом случае вы увидите — xn--h1alffa9f.xn--p1ai , а во втором — xn--cc-xlcvj8g.xn--p1ai . Согласитесь — разница существенная, при условии что вы помните как должен выглядеть домен россия.рф переведённый в Punycode. Мы рекомендуем включать эту настройку только в тех крайне маловероятных случаях, когда у вас есть действительно регулярная потребность посещать сайты с именами на национальных языках и вы запомнили как они хотя бы примерно выглядят.
- pdfjs.disabled ⇒ true
Заметно: Нет
Отключаем встроенный движок для чтения PDF файлов, как сложную систему, потенциально содержащую незакрытые уязвимости.
, потому как: 1) использование встроенного просмотрщика PDF избавляет вас от необходимости сохранять файл локально, что может привести к оседанию на диске компрометирующей вас информации; 2) избавляет от необходимости использовать отдельный просмотрщик PDF, который может содержать уязвимости, сохранять данные об открытых документах на диске (и даже отправлять в интернет), а также может скомпрометировать вас при клике на ссылку внутри документа, выполнив запрос за этой ссылкой через внешний браузер в обход TOR, тем самым раскрыв ваше настоящее расположение.
Мы без особой необходимости и уверенности в том, что вы сможете обеспечить собственную анонимность, используя внешний просмотрщик PDF. Однако, она может оказаться полезной в ситуациях, когда, например, стало известно о наличии незакрытой уязвимости во встроенном просмотрщике PDF браузера — в таком случае лучше применить эту настройку до тех пор, покуда уязвимость не будет закрыта.
Добавление NoScript и поисковой строки
Выше мы рекомендовали добавить кнопку дополнения NoScript на панель браузера и отключить возможность поиска из адресной строки браузера чтобы избежать случайных утечек конфиденциальной информации. Здесь мы покажем как можно вернуть кнопку NoScript и отдельную поисковую строку, удалённые разработчиками браузера в угоду тенденциям примитивизации интерфейса, следующими за примитивизацией среднего пользователя.
Для этого, нужно кликнуть правой кнопкой мыши справа или слева от адресной строки, например, на значке обновления страницы и в контекстном меню выбрать пункт «Customize. » («Персонализация. »):

Найти в списке доступных функций поисковую строку:
JavaScript
With PyCharm, you can develop modern web, mobile, and desktop applications with JavaScript and Node.js .
PyCharm also supports React , Angular , Vue.js , and other frameworks and provides tight integration with various tools for web development.
JavaScript-aware coding assistance includes completion for keywords, labels, variables, parameters, and functions, error and syntax highlighting, formatting, code inspections and quick-fixes, as well as common and JavaScript-specific refactoring. PyCharm also integrates with JavaScript linters and the Flow type checker.
With the built-in debugger, you can debug both your client-side and server-side code and even run JavaScript code snippets in the interactive debugger console. Note that PyCharm supports debugging JavaScript only in Chrome or any other browser of the Chrome family. Learn more from Debug JavaScript in Chrome.
PyCharm integrates with Jest, Karma, Protractor, Cucumber, and Mocha testing frameworks. PyCharm supports running and debugging tests as well as navigation between tests and subjects or between a failed test and the fragment of code that caused the problem.
On this page you will find a short Getting Started Guide that will walk you step by step from creating a web application to debugging and testing it.
Before you start
Make sure the JavaScript and TypeScript plugin is enabled in the settings. Press Control+Alt+S to open the IDE settings and then select Plugins . Click the Installed tab. In the search field, type JavaScript and TypeScript . For more information about plugins, refer to Managing plugins.
Create a new application
- Click Create New Project on the Welcome screen or select File | New | Project from the main menu. The New Project dialog opens.
- In the left-hand pane, choose any project type that is aimed for JavaScript application development, for example, Angular CLI, AngularJS, React App, or React Native.
- In the right-hand pane, specify The path to the folder where the project-related files will be stored.
- Expand More settings and specify other required project options.
Start with an existing JavaScript application
If you are going to continue developing an existing JavaScript application, open it in PyCharm, choose the JavaScript version to use, and configure the libraries in it. Optionally download the required npm dependencies.
Open the application sources that are already on your machine
- Click Open on the Welcome screen or select File | Open from the main menu. In the dialog that opens, select the folder where your sources are stored.
Check out the application sources from your version control
- Click Get from VCS on the Welcome screen. Alternatively, select File | New | Project from Version Control or Git | Clone… from the main menu. Instead of Git in the main menu, you may see any other Version Control System that is associated with your project. For example, Mercurial or Perforce .
- In the dialog that opens, select your version control system from the list and specify the repository to check out the application sources from. For more information, refer to Check out a project (clone).
Project security
When you open a project that was created outside PyCharm and was imported into it, PyCharm displays a dialog where you can decide how to handle this project with unfamiliar source code.

Select one of the following options:
- Preview in Safe Mode : in this case, PyCharm opens the project in a preview mode. It means that you can browse the project’s sources but you cannot run tasks and script or run/debug your project. PyCharm displays a notification on top of the editor area, and you can click the Trust project… link and load your project at any time.
- Trust Project : in this case, PyCharm opens and loads a project. That means the project is initialized, project’s plugins are resolved, dependencies are added, and all PyCharm features are available.
- Don’t Open : in this case, PyCharm doesn’t open the project.
Projects created from the Welcome screen or via File | New | Project as described in are automatically considered trusted.
Choose the JavaScript language version
To get reliable and efficient coding assistance, you need to specify the language version that will be used in all JavaScript files of your project by default.
- In the Settings dialog ( Control+Alt+S ), go to Languages & Frameworks | JavaScript . The JavaScript page opens.
- From the list, choose one of the supported JavaScript language versions:
- ECMAScript 5.1
- ECMAScript 6+: This version adds support for the features introduced in ECMAScript 2015-2020 and for JSX syntax as well as some current proposals to the standard.
- Flow: This version adds support for the Flow syntax.
Use multiple JavaScript versions
If you are working on an application that uses both ECMAScript 5.1 and a newer version of ECMAScript, the easiest way is to choose the highest language version for the whole project from the list on the JavaScript page.

- On the JavaScript page, click next to the JavaScript language version list. The JavaScript Language Versions dialog opens.
- Click and in the dialog that opens select the folder where you need a custom language version. PyCharm brings you back to the JavaScript Language Versions dialog where the selected folder is shown in the Path field.
- From the Language list, choose the language version for the files in the selected folder. In all the other JavaScript files in the project PyCharm will use the version chosen on the JavaScript page.
JSX syntax in JavaScript code
If you are using JSX syntax in your JavaScript code, enable ECMAScript 6+ .

- In the Settings dialog ( Control+Alt+S ), go to Languages & Frameworks | JavaScript , and select ECMAScript 6+ from the JavaScript language version list.
- To be warned when JSX syntax is used by mistake, open the Settings dialog ( Control+Alt+S ), go to Editor | Inspections , and enable the React JSX syntax inspection under JavaScript and TypeScript | General node. Use the search field to locate the inspection. Optionally, configure the inspection severity and scope. Learn more from Code inspections.
Download project dependencies
If your application uses some tools, libraries, or frameworks, download the required packages. To manage your project dependencies, you can use npm, Yarn 1, or Yarn 2, refer to npm and Yarn for details.
Install a package in an empty project
- In the embedded Terminal ( Alt+F12 ) , type: npm install .
If you already have a package.json file in your project
- Right-click the package.json file in the editor or in the Project tool window and choose Run ‘npm install’ from the context menu.
- Alternatively, run npm install in the Terminal Alt+F12 .
Before you start, make sure you have Node.js on your computer.
Configure code completion for project dependencies
To provide code completion for project dependencies, PyCharm automatically creates a node_modules library. In context of the language and the IDE, a library is a file or a set of files. Functions and methods of these files are added to PyCharm’s internal knowledge in addition to the functions and methods that PyCharm retrieves from the project code that you edit. For more information, refer to Configure JavaScript libraries and Code completion.
View inlay hints
Inlay hints appear in the editor and provide you with additional information about your code to make it easier to read and navigate.
Parameter hints
Parameter hints show the names of parameters in methods and functions to make your code easier to read. By default, parameter hints are shown only for values that are literals or function expressions but not for named objects.

Configure parameter hints
- Open the Settings dialog ( Control+Alt+S ) and go to Editor | Inlay Hints .
- Expand JavaScript under Parameter names .
- Specify the context in which you want parameter hints shown by selecting the corresponding checkboxes. The preview shows how the changes you make in the settings affect the code appearance.
- For some methods and functions, PyCharm does not show parameter hints in any context. Click Exclude list. to view these methods and functions, possibly enable parameter hints for them, or add new items to the list.
- To hide parameter hints for any value type in any context, clear the JavaScript checkbox under Parameter names .
Return type hints
PyCharm can display function return types in function calls and call chains.
- Function return type hints are inferred from a JSDoc comment or based on the static analysis of your code.
- Return type hints in method chains are displayed if the method calls are split between multiple lines and return at least 2 different types.
Configure method return type hints
- Open the Settings dialog ( Control+Alt+S ) and go to Editor | Inlay Hints .
- Under Types , expand the JavaScript node, and then select the Function return types checkbox.
- To show return type hints in method chains, expand the Method chains node and select the JavaScript checkbox.
The preview shows how the changes you make in the settings affect the code appearance.
Type hints
Type hints show the types of variables, fields, or parameters. The types of variables and fields are displayed next to their definition. Type hints for parameters are shown in function calls. Type hints are inferred from JSDoc comments or static analysis of your code.

Configure type annotations

- Open the Settings dialog ( Control+Alt+S ) and go to Editor | Inlay Hints .
- In the tree of categories, expand Types | JavaScript .
- Expand the Type annotations node and specify the context where you want type hints to be shown. The preview shows how the changes you make in the settings affect the code appearance.
- To hide parameter parameter type and return type hints for any value type in any context, clear the JavaScript checkbox under Types .
Auto-import in JavaScript
PyCharm can generate import statements for modules, classes, components, and any other symbols that are exported. PyCharm can add missing import statements on the fly when you complete ES6 symbols or CommonJS modules. PyCharm either decides on the style of the import statement itself or displays a popup where you can choose the style you need.
Add ES6 import statements
If you are importing a symbol from your project into a file that is a ES6 module or that already contains ES import statements, PyCharm automatically inserts an ES6 import on symbol completion.
For earlier JavaScript versions or when auto-import on completion is disabled, PyCharm marks the symbol as unresolved and shows a tooltip with the suggested quick-fix:

Alternatively, press Alt+Enter :

If there’s more than one possible source of import, PyCharm shows a list of suggestions:

PyCharm can also generate import statements for symbols defined in the project’s dependencies. Auto-import works for symbols from packages that contain TypeScript definition files (like in moment or redux) or sources written as ES modules.
If the current file already contains a ES6 import statement, PyCharm inserts a new one also in the ES6 style.
Add CommonJS (require) import statements
If you are importing a symbol from your project into a file that already is a CommonJS module (with a require statement or module.export ), PyCharm automatically inserts a CommonJS import on symbol completion.
Alternatively, place the caret at the symbol to import, press Alt+Enter , and select a quick-fix with the CommonJS ( require ) import style.

Whenever PyCharm cannot define automatically what syntax should be used in a file, it displays a popup where you can choose between using the ES6 and CommonJS syntax.
Configure auto import
- To automatically add ES6 import statements on code completion, open the Settings dialog ( Control+Alt+S ), go to Editor | General | Auto Import , and select the Add JavaScript imports automatically checkbox in the TypeScript / JavaScript area.
- To configure the appearance of import statements, open the Settings dialog ( Control+Alt+S ), go to Editor | Code Style | JavaScript , and use the controls in the Imports tab. For more information, refer to Imports tab.
Configure syntax highlighting
You can configure JavaScript-aware syntax highlighting according to your preferences and habits.
- In the Settings dialog ( Control+Alt+S ), go to Editor | Color Scheme | JavaScript .
- Select the color scheme, accept the highlighting settings inherited from the defaults or customize them as described in Colors and fonts.
Run JavaScript in browser
- In the editor, open the HTML file with the JavaScript reference. This HTML file does not necessarily have to be the one that implements the starting page of the application.
- Do one of the following:
- Choose View | Open in Browser from the main menu or press Alt F2 . Then select the desired browser from the list.
- Hover over the code to show the browser icons bar: . Click the icon that indicates the desired browser.
Debug JavaScript
PyCharm provides a built-in debugger for your client-side JavaScript code that works with Chrome or any other browser of the Chrome family. With PyCharm, you can debug JavaScript applications running on the built-in server, on an external server, or on a remote server. For more information, refer to Debug JavaScript in Chrome.
