Запретить загрузку спама в Safari

8

Фон

Новая страница со спамом стала появляться на многих «сомнительных» сайтах (на сайтах с фильмами и т. Д.). Эта новая страница со спамом подходит для категории поддельных сканов, MacKeeper, категории «У тебя есть вирус» и т. Д.

проблема

Проблема с этой новой страницей состоит в том, что вместо всплывающего окна страница фактически инициирует загрузку случайных файлов размером 2 КБ (не содержит вредных файлов, содержит только случайный текст) несколько раз каждые ~ 1 мс. Папка загрузки заполняется, прежде чем вы можете закрыть окно, и вам осталось удалить более 1000 файлов. В отличие от аналогичной проблемы, в которой спам на странице вызывает диалог печати, у него очень мало времени для реагирования.

Неудачные попытки устранения неполадок

  • Я попытался заблокировать папку загрузки. Хотя загрузка не позволила ... ну ... загрузить его, появляется диалоговое окно (см. Изображение). Обычно я мог просто закрыть это диалоговое окно, но, поскольку загрузка выполняется каждые ~ 1 мс, каждый раз, когда я пытаюсь его закрыть, появляется новое диалоговое окно, не позволяющее мне закрыть окно.

  • Принудительный выход из Safari, который останавливает загрузку (после загрузок 1k), но затем я теряю все остальные окна

  • Изменение настроек на «Запросить каждую загрузку» в настройках Safari. Не работает, потому что открытые 1k отдельных диалоговых окон мешают мне даже закрыть вкладку. В конечном итоге сбой Safari.

введите описание изображения здесь

введите описание изображения здесь

Вопрос

Как я могу предотвратить загрузку спама в Safari?

ОБНОВИТЬ:

Вот код, вызывающий загрузку (получил его, отключив JavaScript и просмотрев код вручную):

 function download(g, h, j) {
                var k = new Blob([g], {
                        type: j
                });
                if (window.navigator.msSaveOrOpenBlob) window.navigator.msSaveOrOpenBlob(k, h);
                else {
                        var l = document.createElement("a"),
                                m = URL.createObjectURL(k);
                        l.href = m, l.download = h, l.click(), setTimeout(function() {}, 0)
                }
        }
        function bomb_ch() {
                var g = Math.random().toString(36).substring(20),
                        h = Math.floor(50 * Math.random() + 25);
                while (true) download(h, g, g)
        }
        function ch_jam() {
                bomb_ch()
        }

Примечание: у меня были некоторые проблемы с запуском JS на пользовательской странице. Замерло, а не загружено. Я был в состоянии эмулировать загрузку с помощью setInterval()функции, вызывающей downloadфункцию.

Дополнительная информация: https://blog.malwarebytes.com/malwarebytes-news/2018/02/tech-support-scammers-find-new-way-jam-google-chrome/

JBIS
источник
Комментарии не для расширенного обсуждения; этот разговор был перенесен в чат .
bmike
@JBis Время почти подошло к присуждению награды
Мэтт
@ Мэтт, я получаю еще 24 часа. И я не награждаю ни одного ответа в его нынешнем виде.
JBis

Ответы:

5

Разве это не хороший случай для блокировщика контента Safari / javascript, который является выборочным?

Ghostery может быть хорошим местом для начала на Mac, чтобы посмотреть, можете ли вы использовать предварительно созданные правила для подавления межсайтовых сценариев / внедрения кода в веб-страницы. Конечно, если страница обслуживает этот контент напрямую, вам нужно полностью отключить javascript на этой странице или принять к сведению и просто заблокировать те сайты, которые намеренно портят вам восприятие или из-за того, что вы продаете рекламу кому-либо, у кого есть позволить себе эту панику и мошенничество.

Если вы хотите быть более точным - пользовательские сценарии типа GreaseMonkey могли бы справиться с этим с достаточным знанием JS с вашей стороны (или найти кого-то, кто написал сценарий, чтобы заблокировать сегодняшнюю итерацию этой вредоносной программы).

Отредактировано @JBis

Следующий пользовательский скрипт успешно заблокировал страницу.

     // ==UserScript==
     // @name         The Bomb Squad
     // @version      0.1
     // @description  Blocks the pages containing any function with the bomb_ch function detailed in /apple/329594/prevent-spam-downloads-on-safari and https://blog.malwarebytes.com/malwarebytes-news/2018/02/tech-support-scammers-find-new-way-jam-google-chrome/
     // @author       Josh Brown (@JBis https://apple.stackexchange.com/users/263848/jbis)
     // @match        *
     // @grant        none

    // ==/UserScript==

   if (typeof bomb_ch === "function") {
     document.getElementsByTagName("body")[0].innerHTML="<h1>Page Defused by The Bomb Squad</h1><p>Because it contatained the following
 function(s):  <pre>bomb_ch()</pre> <br>";
    }

Примечание: Sp (c) аммеры могут легко обойти это путем рандомизации bomb_ch()функции.

Более новые версии Safari для ОС могут помочь немного сократить это, но есть люди, которые доставляют эту кучу дерьма на ваш Mac, чтобы заработать деньги, чтобы они, вероятно, адаптировались к любым технологиям, которые пытаются облегчить блокировку. Если вы не готовы тратить больше денег на поддержку бизнеса, который поддерживает библиотеку настроек, которые могут «бить моль» и адаптироваться быстрее, чем шарлатаны могут приготовить новый код в своей котельной .

Вам также нужно будет решить, являются ли веб-сайты, которые делают это, шарлатанами, которые являются частью мошенничества, поскольку они должны знать, что это происходит с вами, одним из посетителей, которых они принимают.

bmike
источник
2
@JBis Tampermonkey работает, если вы устанавливаете его вручную: обход «Safari больше не поддерживает небезопасное расширение» в macOS Mojave
grg
1
@ Grg Grg ( звук ), вам нужно перезапускать каждый браузер, перезапускать :)
JBis
5

Хотя для Safari существует множество способных блокировщиков рекламы, вариантов блокировщика контента с расширенным спектром и расширением гораздо меньше. Из них выделяются только два: Ghostery и uBlockOrigin [ информационная ссылка: https://github.com/gorhill/uBlock ссылка для скачивания: https://safari-extensions.apple.com/?q=ublock%20origin .

РЕДАКТИРОВАТЬ: не путайте происхождение uBlock с очень похожим именем uBlock . Эти два продукта существенно различаются по способностям и репутации.

Могут ли они делать то, что вы хотите, и предотвратить загрузку бомбардировок ваших друзей? Да, с той разницей, что Ghostery понадобится настроить некоторые правила, где uBlockOrigin настроен так, чтобы сделать это по умолчанию.

Я случайно узнал, что uBlockOrigin заблокировал этот конкретный эксплойт за месяц до объявления Malwarebytes в вашей ссылке «Подробнее». Я не знаю о графике Ghostery.

Я бы порекомендовал вам дать им обоим испытательный срок.

Док Г.
источник
Пожалуйста , не удаляйте ответ. Тем не менее может помочь другим. Я продолжу тестирование, чтобы увидеть, может ли инструмент блокироваться с помощью пользовательского правила.
JBis
@JBis, если вы хотите создать URL-адрес в чате, который мы можем удалить позже, пингуйте меня там. Вы говорите, что единственный щелчок «отключить все» из призрака не защищает вас от этой функции.
bmike