Найти в Дзене
Т.Е.Х.Н.О Windows & Linux

NoScript без секретов: инженерный техгайд по умной блокировке скриптов в браузере (2025)

Оглавление

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 (настольный)

  1. Откройте менеджер дополнений → «NoScript Security Suite» → Установить.
  2. После установки нажмите 🅝 справа от адресной строки.
  3. Включите работу в приватных окнах: ☑ Разрешить в Private.

Chromium-семейство (Chrome, Edge, Brave)

  1. Установите из Chrome Web Store.
  2. Закрепите значок (Pin) для постоянной видимости статуса.

Tor Browser

В Tor Browser NoScript встроен по умолчанию и управляется ползунком Security Level. Если нужен тонкий контроль, добавьте иконку через Customize Toolbar, иначе придётся пользоваться только глобальными пресетами.

Интерфейс и уровни доверия

-2

Настройки шрифтами:

  • Жирный — важные группы.
  • Моноширинный — параметры JSON резервной копии.

Категории разрешений

-3

Чтобы изменить глобальное значение, откройте Настройки→Общие и кликните по иконке карандаша напротив нужного столбца.

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).

Практика

  1. Белый список «Google API» только на Gmail:textSite .googleapis.com
    Accept from mail.google.com
    Deny
  2. Ограничить доступ к локальной 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 и сразу сбрасывать их по закрытию таба.

Повседневные сценарии

  1. Банкинг: Перейдите на сайт банка → TRUSTED → проверьте, чтобы сторонние CDN остались DEFAULT.
  2. Чтение новостей: оставьте всё в DEFAULT; основные тексты выводятся и без JS.
  3. Web-IDE (GitLab, Jira): настройте Custom — разрешите script, fetch, но блокируйте рекламные frame-ы.

<noscript> в HTML-разработке

Тег <noscript> отображается только при отключённом JavaScript:

<noscript>
<div class="alert">Включите JavaScript для полной функциональности</div>
</noscript>

Совет разработчикам:

  • Избегайте дублирования контента: храните текст «фолбэка» на сервере, чтобы не поддерживать две версии страницы.
  • Не допускайте вложенных <noscript> — это невалидно по спецификации W3C.

Отладка проблем

  1. Откройте DevTools → F12 → вкладка «Сеть». Блокированные запросы помечены красным.
  2. Щёлкните 🅝 → «Журнал» — здесь NoScript пишет, какой домен и какая категория отключены.
  3. Временно дайте Temp.TRUSTED, перезагрузите страницу, убедитесь, что именно этот ресурс критичен.

Частые вопросы сообщества

-4

Расширенные функции

  • Экспорт/Импорт: about:addons → NoScript → 🎛 → Export. Получите JSON с разделами sync, local.
  • Горячие клавиши: Alt+Shift+N открывает меню; Shift+клик по иконке — Revoke Temp.
  • Автосинхронизация в Firefox Sync хранит лишь «постоянный» список; временные права не передаются для конфиденциальности.

Альтернативы и дополнения

-5

Баланс «безопасность ↔ удобство»

  • Без 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