Firefox: Блокировать инлайн скрипты или только некоторые скрипты

Раньше для блокирования скриптов на странице я довольно длительное время использовал NoScript. Для блокирования рекламы я использовал AdGuard AdBlocker. Вместе они прекрасно работали и в принципе меня вполне устраивали. В какой-то момент мне потребовалось заблокировать с сайта только ОДИН скрипт, а не весь функционал включая библиотеки jquery и т.п. Но увы, NoScript мог блокировать лишь всё сразу.
Проведя поиск по инету, я выяснил, что уже довольно давно uBlock Origin включил эту возможность в свой функционал:
SettingsDefault behaviourDisable JavaScript
Там же можно поставить галочку на блокирование загрузки шрифтов с удалённого ресурса (если потребуется):

  • Block remote fonts

А также изображений и видео:

  • Block media elements larger than

Эти настройки восполняют функционал NoScript.
Чтобы добавить блокировку конкретного скрипта с сайта, нужно добавить правило в раздел настроек My rules, либо на значке uBlock Origin открыть логгер и там выбрать скрипт, который необходимо заблокировать:
Firefox: Блокировать инлайн скрипты или только некоторые скрипты
1. Нажимаем на кнопочку Reload the tab content
*. В фильтре выбираем отображение скриптов (хотя это не обязательный пункт).
2. На скрипте нажимаем левую кнопку мышки
3. В открывшемся диалоговом окошке выбираем вкладку URL rule
4. Подводим мышку в левую колонку, там будет три кнопки разных цветов
5. Нажимаем красную кнопку для блокирования скрипта.
6. На текущий момент изменения временные, чтобы их сохранить, нужно нажать на кнопку с замочком:
Firefox: Блокировать инлайн скрипты или только некоторые скрипты

Блокировать inline-скрипты

Если в заголовке страницы добавлен не путь к файлу со скриптом, а сам скрипт, то его не видно в логгере. Например, я добавил в заголовок такой скрипт:

    <script>
        console.log(`Time: ${Date.now()}`);
    </script>

У него нет даже названия функции, но при загрузке страницы он отработает и в консоль будет выведена дата и время (количеством миллисекунд):

Time: 1680861115822

Можно было сразу конвертировать в читабельный формат, но задача сейчас не в этом.
Чтобы заблокировать подобный инлайн-скрипт, нужно добавить правило в раздел My filters:

127.0.0.1##^script:has-text(Time: )

Здесь мы указываем адрес сервера, а в качестве параметра ^script:has-text() указываем текст для поиска (без кавычек!).
В данном случае у нас была оригинальная строка Time: .
При открытии страницы в косоли больше не будет записи со временем, а в логах uBlock появится строчка с уведомлением:
Firefox: Блокировать инлайн скрипты или только некоторые скрипты



Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments