NoScript — один из самых «долгоживущих» инструментов клиентской защиты: с 2005 года он блокирует потенциально опасный JavaScript, Flash, WebGL и другие активные объекты, пока пользователь сам не разрешит их запуск. В 2025 году расширение остаётся актуальным благодаря новым механизмам ClearClick, Anti-XSS, ABE и контекстным политикам, позволяющим тонко ограничивать права каждого домена. Эта статья предоставляет полный, обновлённый разбор всех возможностей, приёмы настройки и ответы на распространённые вопросы из сообщества разработчиков.
«Компьютер похож на холодильник: откроешь-закроешь — и думаешь, что там что-то изменилось.» 😉
Что такое NoScript и почему он актуален
NoScript — расширение с подходом «Default Deny». Скрипты, шрифты, fetch-запросы и другие рисковые объекты запрещены по умолчанию, а разрешения выдаются строго избранным сайтам. Такой метод снижает вероятность XSS, CSRF, Clickjacking и эксплуатации 0-day-уязвимостей. В последних версиях (13.x — 2025-й) движок полностью переписан на WebExtension, поэтому поддерживается Firefox, Chromium-браузеры, Tor Browser, а также мобильный Firefox for Android.
Установка и первые шаги
Firefox (настольный)
- Откройте менеджер дополнений → «NoScript Security Suite» → Установить.
- После установки нажмите 🅝 справа от адресной строки.
- Включите работу в приватных окнах: ☑ Разрешить в Private.
Chromium-семейство (Chrome, Edge, Brave)
- Установите из Chrome Web Store.
- Закрепите значок (Pin) для постоянной видимости статуса.
Tor Browser
В Tor Browser NoScript встроен по умолчанию и управляется ползунком Security Level. Если нужен тонкий контроль, добавьте иконку через Customize Toolbar, иначе придётся пользоваться только глобальными пресетами.
Интерфейс и уровни доверия
Настройки шрифтами:
- Жирный — важные группы.
- Моноширинный — параметры JSON резервной копии.
Категории разрешений
Чтобы изменить глобальное значение, откройте Настройки→Общие и кликните по иконке карандаша напротив нужного столбца.
Anti-XSS уровень
NoScript внедряет клиентский фильтр запросов: при попытке домена А вставить скрипт на страницу домена B фильтр сравнивает Origin и цель, вырезает подозрительный payload и предлагает пользователю действие. В 2025 году движок умеет нейтрализовать даже нестандартные векторы, основанные на методе __defineSetter__, патч для которого вышел в 2019-м.
ClearClick — защита от Clickjacking
Алгоритм сравнивает «скриншоты» видимой и прозрачной версии элемента перед кликом; если координаты различаются, событие блокируется и выводится предупреждение. Опция clearclick активна по умолчанию (проверьте — about:addons → NoScript → Настройки → Защита от UI redress).
Application Boundaries Enforcer (ABE)
Теория
ABE действует как встроенный межсайтовый firewall: он анализирует каждую сетевую транзакцию и сверяет её с наборами правил Site / Accept / Deny / Anonymize / Sandbox. По умолчанию ABE содержит профиль LOCAL для защиты роутера и внутренних IP.
Базовый шаблон
Site .example.com
Accept from .example.com .cdn-example.net
Deny INCLUSION(SCRIPT, SUBDOC)
- INCLUSION — фильтрует загрузку чужих скриптов через <script src>.
- Deny без параметров блокирует любой метод (GET/POST).
Практика
- Белый список «Google API» только на Gmail:textSite .googleapis.com
Accept from mail.google.com
Deny - Ограничить доступ к локальной NAS только из внутренней сети:textSite 192.168.0.0/16
Accept from 192.168.0.0/16
Deny
Логирование
Включите devtools.errorconsole.enabled → true и смотрите вкладку «Сообщения» — ABE пишет туда каждое совпадение и действие.
Контекстные политики и нововведение 2025
Issue #417 показал риск: флаг «Temporarily trust top-level sites» расширял права на все вкладки сразу. Версия 12.5.9xx пересобрала логику — временное доверие теперь привязано к конкретной вкладке и не утекает на другие домены.
NoScript в связке с Tor Browser
Tor Browser использует свои пресеты: Standard / Safer / Safest, где запреты жёстко зашиты. Снятие галки Override Tor Browser's Security Level preset чревато деанонимизацией из-за отличий в поведении скриптов. Рекомендуется:
- Оставлять уровень «Safer» для повседневной работы.
- Временно поднимать права сайту через Temp.TRUSTED и сразу сбрасывать их по закрытию таба.
Повседневные сценарии
- Банкинг: Перейдите на сайт банка → TRUSTED → проверьте, чтобы сторонние CDN остались DEFAULT.
- Чтение новостей: оставьте всё в DEFAULT; основные тексты выводятся и без JS.
- Web-IDE (GitLab, Jira): настройте Custom — разрешите script, fetch, но блокируйте рекламные frame-ы.
<noscript> в HTML-разработке
Тег <noscript> отображается только при отключённом JavaScript:
<noscript>
<div class="alert">Включите JavaScript для полной функциональности</div>
</noscript>
Совет разработчикам:
- Избегайте дублирования контента: храните текст «фолбэка» на сервере, чтобы не поддерживать две версии страницы.
- Не допускайте вложенных <noscript> — это невалидно по спецификации W3C.
Отладка проблем
- Откройте DevTools → F12 → вкладка «Сеть». Блокированные запросы помечены красным.
- Щёлкните 🅝 → «Журнал» — здесь NoScript пишет, какой домен и какая категория отключены.
- Временно дайте Temp.TRUSTED, перезагрузите страницу, убедитесь, что именно этот ресурс критичен.
Частые вопросы сообщества
Расширенные функции
- Экспорт/Импорт: about:addons → NoScript → 🎛 → Export. Получите JSON с разделами sync, local.
- Горячие клавиши: Alt+Shift+N открывает меню; Shift+клик по иконке — Revoke Temp.
- Автосинхронизация в Firefox Sync хранит лишь «постоянный» список; временные права не передаются для конфиденциальности.
Альтернативы и дополнения
Баланс «безопасность ↔ удобство»
- Без JS = максимум защиты, но минимум UX.
- Тонкая настройка позволяет оставить JS только «по делу».
- Full TRUSTED на непроверенных сайтах — открытые ворота для XSS.
Актуальные патчи и известные обходы
В 2025-м исследователи подчистили несколько обходов фильтра через obscure-методы DOM — команды toString().constructor, «синтетические» события и window.name. Все они закрыты в ветке 13.x. Обязательно держите авток обновление дополнений включённым.
Чек-лист системного администратора
1. Include *.intranet.local → TR (script,font,frame)
2. Exclude *.ads.* → UN
3. Force HTTPS bank.*, pay.*, auth.* → ABE rule + HSTS
4. Deny INCL *.js?*track*, *.beacon → ABE global
5. Revoke Temp on browser close → noscript.autoRevoke = true
Скопируйте в noscript.rules и импортируйте через меню.
Заключение
Компетентное использование NoScript превращает браузер в mini-IDS: активный код выполняется только у тех, кому вы доверяете, а все прочие остаются изолированными. Потратив пару вечеров на изучение уровней, ABE и ClearClick, вы сократите поверхность атаки, не жертвуя комфортом. Помните — безопасность это процесс, а не галочка в настройках.
Подпишитесь на канал “Т.Е.Х.Н.О Windows & Linux”, поставьте лайк и поделитесь статьёй с коллегами! 😊
#тег #браузер #широкиенастройки #noscript #javascript #безопасность #firefox #chrome #edge #tor #linux #windows #anti-xss #clickjacking #abe #clearclick #webgl #websecurity #csp #u2f #privacy #форум #stackoverflow #администрирование #html #noscript-tag #uBlockOrigin #uMatrix #xss #openid #credential #tracking #cookies